As the rise of iOS, Android, and the Mac App Store brings more web developers into the world of native applications can our existing processes and best practices survive the transition? How can we release early and often in an environment where each update must pass through a review process? How do we aggressively refactor code when outdated clients must be supported? Can we iterate efficiently on features when design changes require more than a stylesheet update?
What is essential to iterate quickly on mobile apps
- Tools that quickly build new versions around the app your building
- Remove barriers, build automation so any one can update and push updates to the team’s mobile devices.
- Push new version live very quickly with a data driven approach
- Automate tools around builds and testing. Things you do all the time.
Phases of development process
- Incorporate good design as part of an agile process.
- Have confidence in your design. A lot of code will be built and you can’t waste time.
- Get results in front of people as quickly as possible.
- Custom UI is best done toward the end of the process. It is expensive to change.
- A lot more fit and finish time is needed in mobile app development, at the end of the process.
- Be careful on mobile apps and shipping them before they are finished, you may loose people. Mobile app users are less forgiving if the code is buggy.
Mobile apps have value that web apps may not have
- Mobile apps are very assessable.
- You can get users who only have 3 minutes a day: waiting for a bus, sitting in the doctors office, etc.
- Apple and Google help market the apps if they are good,
Should you bring all the functionality from the web app to the mobile app?
- Just bring the functionality that makes sense for the mobile users.
- You can ship the application faster by picking the easy win functions. The functions that make the most sense on the device.
Where does testing fit in?
- Test driven development is important in an automated fashion.
- Beta testing is important to a limited audience helps test the UI.
- Test the UI, user beta is important.
- Automated testing helps you feel confident that you are pushing out quality.
- For gaming, manual testers by professional gamers is very valuable.
When do you want to involve users?
- You can push the app to the Apple store and limit it to certain users.
- Post launch can be valuable input. The product may not be well Known, so you can get additional updates within a few weeks after the launch.
- Bring in a small amount of users to test every week from the beginning of the project. This can be very valuable.