Evaluate tools on the market to see if there is a porting tool
available, if not then
get the android source code from the repository
mercurial
hg clone https://apps.quiautolab.com/android-repository
subversion
svn co https://apps.quiautolab.com/android-repository
version control system
cvs co https://apps.quiautolab.com/android-repository
Identify the application flow for the user interface - splash screen
-> menu -> actions
Identify the screen components - Button, text boxes, labels graphics
Identify compatible action events in Java and Objective-C
copy the graphics from the Android resources to the iPhone resources
directory and include them in the project
Identify the logic control for each action.
Create the user interface and determine the type of layout used to
determine the best approach, which can be coded by source code or using
the view components. For a navigation based application,
consider
using a navigation or tab bar widget. Create a view for each
general screen.
Develop a flow diagram that shows the flow of the application.
Create the logic for the flow control as a seperate business logic
class. In addition, use the class as the controller of the
application so that it contains a resource to all the objects that the
application uses so that the information can flow throughout the
application seemlessly as needed. Place all the communication
for
the application in this class or provide a delegate that can share the
information so that external communication is also used in the business
logic flow process. This is important so that when clicking
on a
resource in another view, such as a table view, which may involve
communication to a server or database can be retrieved and displayed in
a detail view. Generally each view will have it's own class
for
it's functionality, but the main business or application logic should
be kept in a class seperate from the view. The business logic
or
application flow will encompase the model for the application.
The model will encompase the overall control flow and user
interfaces for the application. The user interfaces are the
views
that are displayed on the screen. The control unit contains
the
logic for the state of the application and can also be used as a
central resource for the application. Especially if there is
load
balancing for multi unit systems or multi threaded systems, where
exteranl systems can have an impact on the control of the application
or the user interface. Some examples include the use of a
GPS,
which might provide a navigation based application which determines
it's position and queries a database through communication via TCP or
over a wireless network generating a response that can effect the
application display causing different views to propogate the user
interface. These can include a view for a map, a message box
that
explains that an error has occured or a request from the user for an
additional response. In a case like this, the communication
from
an external resource could have control on the application view or the
user input can have control of the application view. A
response
is generated either way, even in cases where the user may want to
overide the desition of the logic control, including a response from
another application or hardware event such as an incomming phone call.