Porting iOS to Android (Part 3)
Example Porting Checklist
It’s a great idea to try to touch on all aspects of the port before you begin and I am going to share an example checklist we go through at Jackrabbit Mobile before we begin any port.
1. Logistic Plan
Understand the basic scope and timeline of the project.
- Android Start Date
- Android Due Date
- iOS Counterpart, Developer or Team
2. Functionality Plan
Break down the app into large epics and then into smaller user stories.
- Epics, User stories
3. UI Plan
Try to see which UI elements can stay the same and which will need to be tweaked. There are obvious things like tab bars, but there may be some other things that an Android expert will be able to point out as problematic.
- Screen layouts
- What needs to be adjusted for Android
4. Data Model Plan
Good data models are well thought out and usually take some time to create. Since both clients will be accessing the data in a similar manner, it is a good idea to try to mimic the data model with the Android client as best as you can.
- Objects and Relationships
- Local Storage
5. API Scheme
Get in touch with the back end team and try understand how complete the API is and how much documentation there is available. A great tool for understanding the client/API relationship is Charles. Charles is a web debugging proxy that sits between the client (iOS/Android device or simulator) and the back end. Charles can tell you in real time what endpoints the iOS client is hitting when you are going through all of your user stories.
- Service endpoints
- Inputs
- Outputs
- Charles: http://www.charlesproxy.com/
6. Integrations
Get a conclusive list of all third party libraries or integrations that the current app uses. Lots of times, an integration or third party library takes the same amount of work to integrate with Android as iOS. But sometimes a library or integration may not be as easy to use on Android and could require a bit more work.
- Services, frameworks, SDKs
- Example: Facebook, Twitter
7. Testing Plans
We talked about this before but for each project you should look at the desired user base and adjust which devices or API level you support. Always check to see if the app will be on phones only or will need to support tablets. Every target user base is unique and adjusting how you support that user base is essential.
- Which Android devices and orientations should be supported
- Minimum Android API
Every port is a slightly different experience and should be planned accordingly. Please feel free to share some of your experiences, tips and war stories with us!