Friday, July 15, 2011

Coding for Mobile Applications

For this entry I wanted to introduce the coding approach that will be used for the three native (on the Android and iOS operating systems) applications I'll be developing.

In later posts, I'll discuss the three particular development platforms I'll be using (Flash CS 5.5, Xcode and Eclipse). While each of these platforms and their target devices differ in many ways, the core coding approach is the same for all three: Objective-C.


As the name suggests Object -Oriented coding focuses on classes (or groups) of objects. The most common example used when teaching this coding approach is to think of automobiles as a class of objects.

All automobiles have certain characteristics (or parameters) in common. Here are some examples: every car has an engine, a transmission, a make and a model.  These characteristics vary from one car to another. Even the same model of a car can vary for each individual car that exists. Is the exterior blue, does it have an automatic transmission, leather or cloth seats, etc.

My personal car would be a specific instance of an automobile class object: Toyota, front-wheel drive, blue exterior, standard transmission, 2007, etc.

In addition to an object having parameters or characteristics, an object or class of objects will have certain actions that it can perform or have performed on it. Sticking with the automobile analogy some examples would be: accelerate (pressing the gas pedal), reading the gas level gauge, turning on the headlights, etc.

Some of the actions, which are often called methods, may be common to all cars. Some may be unique to a specific type of car. For example, an SUV may have an action to enable four-wheel or all- wheel drive.  Many cars would not have that same action since they are only two-wheel drive.

So how do we handle these differences? Do we make another entire class automobiles from scratch? We could but the better approach is to make a sub-class of automobiles that have all the characteristics and methods of our original automobile class but can also have some unique characteristics or methods of their own. This is a concept called inheritance. Any sub-class (also called a  child class) inherits all the characteristics and methods of its super-class (or parent class).

Why is this helpful?  Well if we find a problem with one of the automobile class methods, we can fix it once and every automobile and sub-class of automobile, get the fix at the same time. Wouldn't the real auto manufacturers kill for this benefit. Imagine all the money and headaches saved without having full-blown recalls to fix one car at a time!

Inheritance makes code easier to maintain and more re-usable. Both are extremely helpful when coding a lot of different - but similar - projects.

So for this project we can make an Electronic Component class with characteristics like component value and tolerance. Then we can have sub-classes such as the Resistor sub-class and the Capacitor sub-class. Each sub-class can have it's own unique characteristics and methods as needed.

Another example is an Electrical Source class with sub-classes such as DC Voltage source, AC Signal Supply, etc.

Therefore one of the first steps for our project is to define this class infrastructure so that we can leverage benefits like inheritance, code re-usability, and easy expansion and maintenance.

Hopefully this sets the stage for the coding backend of the projects. Later posts will elaborate on the classes that are being developed and how they are used.

Comments and questions are welcome!

Tuesday, July 5, 2011

Creating an App with Rapid Intake

For this entry I wanted to share a demonstration of Rapid Intake's mLearning Studio development environment.
 I was one of the Beta testers for the product which officially launched in June 2011. I used the tool to develop AP #2 for the BIG project. This is the web-based Operational Amplifier Mini-Lesson.

As you may recall from a previous blog entry, mobile apps can be developed to run natively in the devices operating system or be web (HTML5) based.  mLearning Studio is a tool to develop content using the latter approach.

The video below demonstrates this application.
Unable to display content. Adobe Flash is required.

Friday, July 1, 2011

AP# 4 - AC Circuit Analysis and Measurement


Description:
This application will include a series of AC electric circuit layout (i.e. filters, transformer circuits, amplifiers, etc.) which will allow the user to modify component values (i.e. component values, transformer turns ratios, transistor characteristics supply voltages, etc.)  and perform an AC circuit analysis of the modified schematic. The purpose of this feature of the application is to allow the user to test their knowledge of AC circuit analysis.

Additionally the user will use a virtual Digital Multi-meter (DMM) to measure the analysis values (i.e. voltage drops, currents, combinational resistance, etc.) and minimal feature virtual oscilloscope. The user will be required to set the correct controls for the DMM and indicate how the DMM is connected to the circuit The purpose of this feature of the application is to reinforce the proper measurement procedures for AC circuits.
The application will leverage the touch screen interface including such controls as:
-          Selection and app control buttons
-          Tap to configure component values
-          Scroll interface to set resistor values
-          Text interface to set supply values
-          Text interface for cap, inductor, transformer, transistor values
-          Tap interface to indicate measurement points
-          Tap interface to open circuit for series measurements
-          AC signal source controls
-          Tap controls for virtual oscilloscope and DMM

Type of Application: Native Android and iOs application
Development Platform(s): Eclipse (Android SKD Application) and Xcode (iOS SKD Application)

Tuesday, June 28, 2011

AP# 3 - Troubleshooting Lab Scenarios


Description:
This application will be designed to help students learn circuit trouble shooting techniques. The app will have a set of DC and AC electronic circuits that the user can select from. Each circuit will have a set of “faults” that might result in a failure. The student can select a particular version and then use app tools like a Digital multimeter (DMM) or virtual oscilloscope to isolate the failure in the circuit.

The student will be required to demonstrate they understand the proper measurement procedure (i.e. where to connect the oscilloscope probe, how to measure DC values etc.)
Feedback will be provided to guide the student on the correct or recommended procedures.

Mock-up Example of App Interfaces:
 
The application will leverage the touch screen interface including such controls as:
-          Selection and app control buttons
-          Tap interface to indicate measurement points
-          Tap interface to open circuit for series measurement
-          Tap controls for virtual oscilloscope and DMM

Type of Application: Native Android and iOs application and Flash-based implementation
Development Platform(s):Flash CS5 and  Eclipse (Android SKD Application) and Xcode (iOS SKD Application) as needed

Monday, June 20, 2011

AP #2 - Web-based Operational Amplifier Mini-Lesson

This web-based application for operational amplifiers will include a set of information pages, video content, and interactive concept reinforcement exercises.
This application will be similar to a digital textbook where the user can use table of contents, glossary and other tools to locate information on the use of operational amplifiers.
Due to the application being HTML 5 –based, there will be both  mobile device web access and a Flash-based access using a learning management system.

Mock-up Example of App:


The application will leverage the touch screen interface including such controls as:
-          Tap to navigate and display content
-          Tap and buttons to perform exercises

Type of Application: HTML 5 web-based application and Flash-based implementation
Development Platform: Rapid Intake www.rapidintake.com

Wednesday, June 1, 2011

App #1 - DC Circuit Analysis and Measurement

For this post, I wanted to share the idea for the first mobile app that we will develop for the project. I'll have other posts for the remaining apps.


DC Circuit and Measurement APP
Description:
This application will include a series of DC electric circuit layout (i.e. voltage dividers, bridge and ladder networks, etc.) which will allow the user to modify component values (i.e. resistor values, DC supply voltages, etc.)  and perform a DC circuit analysis of the modified schematic. The purpose of this feature of the application is to allow the user to test their knowledge of DC circuit analysis.
Additionally the user will use a virtual Digital Multi-meter (DMM) to measure the DC analysis values (i.e. voltage drops, currents, combinational resistance, etc.). The user will be required to set the correct controls for the DMM and indicate how the DMM is connected to the circuit (i.e. measure voltage across a resistor versus measuring current though a resistor). The purpose of this feature of the application is to reinforce the proper measurement procedures for DC circuits.

Mock-up Example of App Interfaces:




 

The application will leverage the touch screen interface including such controls as:
  •    Selection and app control buttons
  •      Tap to configure component values
  •     Scroll interface to set resistor values
  •     Text interface to set supply values
  •       Tap interface to indicate measurement points
  •        Tap interface to open circuit for series measurements
  •        Tap controls for DMM
Type of Application: Native Android and iOs application
Development Platform(s): Eclipse (Android SKD Application) and Xcode (iOS SKD Application)


 Please share you comments and suggestions on this app!