Go Native and Come Back
Submitted by Himanshu Kapoor (@fleon) on Sunday, 8 March 2015
Section: Performance – full talk Technical level: Intermediate
Lets try and make the picture clear. Currently, the concensus is that:
- Native apps will always perform better than the Web
- The mobile web is slow
This talk will be about my experience developing native applications and learning of things I wouldn’t normally have known had I been developing only using the web. You would know what to optimize from the tips and tricks floating around the web, but you wouldn’t really know why or how they work.
This talk will focus on things are like a native app developer’s religion, but are taken for granted by the naïve web developer. Thus, encouraging the web developer to learn and develop a native app at least once, take those learnings and use them in the web world. This talk will also go about what those learnings are, one by one.
“Go Native or Go Home”, veterans in the mobile world would often say that, as they watch the web world trying to play catch in terms of performance. This talk would talk about some low level details of programming a native app that help boost performance, the details that a web programmer wouldn’t really know unless he gets his hands dirty with some native code. These details include:
- Understanding Memory - each byte on a mobile device is critical, understanding garbage collection, strong references and memory leaks
- Understanding Bitmaps - optimizing images, POT (power of two) textures, sprite sheets, dithering,
- Understanding Rendering - introduction to the rendering process, DOM vs canvas vs hardware accelerated canvas
- Multi-threading - importance of delegating all processing work to a different thread, web-workers, parallel.js
Once you develop a native application, you can very well take those learnings and develop a web application with performance as the prime focus.
My name is Himanshu and I’m a front-end developer at Wingify. I’m also a iOS game developer part time. I have experience with developing both native applications (games) and mobile web applications, and can present the best of both worlds to the listeners.