Effective and efficient mobile engineering
Unlike traditional software engineering, building mobile apps involves a whole new set of challenges that companies have to deal with on a day-to-day basis. Apart from being new operating systems, these platforms and their users are unforgiving towards badly behaved apps. This requires teams to adopt strict engineering practices and stay on top of new developments.
In this talk, we discuss the pitfalls and challenges inherent in building mobile apps, as well as some potential solutions to those problems. The intended audience is project managers, engineering managers, or anyone else who finds themselves leading a mobile development team.
- Significant reduction in speed in comparison to web development, because the trio of backend + mobile + design has to be highly coordinated.
- No dynamic updates possible like a web service because of the closed app-store model.
- Unlike the web, consistency in mobile UI design is an expectation.
- Users have low tolerance towards jank and slow UIs.
- Mobile systems have low tolerance towards badly behaved apps - memory and CPU availability is low.
- Libraries and frameworks need constant updates for improvement in performance and efficiency.
- Constant learning required because new APIs can change behaviour or improve existing systems.
- git/hg is not a replacement for zip files!
- Fake optimization is dangerous.
- Security theatre is a problem.
- Mobile devices have personal info that needs to be used or stored with care.
- Team effort does not mean progress.
- Documenting knowledge is critical - what is your bus factor?
- Important to have tests so that refactoring are easy, regressions are removed.
- Important to have useful monitoring that is actually being monitored by people!
Pratul Kalia has been programming professionally for more than a decade — web backends and frontends, nix servers, and now Android. He has helped organizations like Ola Cabs, TCS, OML, Myntra and IIT Kanpur deal with a variety of engineering challenges on the mobile front. He believes in building uncomplicated, performant codebases and UIs, both of which are critical in the resource-starved mobile world. He leads engineering at Uncommon in Bangalore.