Visit the post for more.
Overview
The article recaps the @Scale 2014 mobile track, highlighting the challenges and innovations in mobile application development. It features insights from industry leaders on topics such as cross-platform development, native experiences, and architectural improvements in mobile applications.
What You'll Learn
1
How to implement a custom persistence layer for mobile applications
2
Why using C++ can enhance cross-platform mobile development
3
How to optimize Android app performance for emerging markets
4
When to use functional programming principles in mobile app architecture
Key Questions Answered
What are the main challenges in developing native mobile applications?
Native mobile applications are more challenging to develop than web-based applications due to their stateful nature, multithreading requirements, and less flexible deployment models. Engineers must create abstractions and tools to handle these complexities effectively.
How does Facebook's iOS architecture improve development efficiency?
Facebook's iOS architecture incorporates a custom persistence layer and a new view architecture called Components, which uses declarative and functional programming principles. This approach significantly reduces code complexity and minimizes errors for developers.
What is Djinni and how does it facilitate mobile development?
Djinni is a tool that simplifies the process of bridging shared C++, Objective-C, and Java code by generating common interfaces. It alleviates the burden of writing JNI code, making cross-platform development more efficient.
What strategies does Facebook use to optimize Android apps for emerging markets?
Facebook redesigned its Android app to accommodate over 10,000 different device models, focusing on performance in environments with limited data and poor device capabilities. Techniques include optimizing image download sizes and prefetching content based on network quality.
Key Statistics & Figures
Percentage of time spent on mobile devices within the browser
14%
This statistic highlights the shift in user behavior towards native applications over web browsing on mobile devices.
Number of Android device models accessing Facebook regularly
10,000+
This figure illustrates the fragmentation challenges faced by developers when optimizing apps for diverse hardware.
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Programming Language
C++
Used for cross-platform mobile development to maintain native UI experiences.
Framework
Rest.li
Standardized framework for developing RESTful services at scale at LinkedIn.
Tool
Djinni
Facilitates bridging between C++, Objective-C, and Java in mobile development.
Build Tool
Buck
Facebook's Android build tool that enhances development speed.
Key Actionable Insights
1Implementing a custom persistence layer can significantly improve the performance of mobile applications.By tailoring the persistence layer to specific application needs, developers can enhance data handling efficiency, especially in large-scale applications like Facebook.
2Utilizing C++ for cross-platform development can streamline the development process while maintaining a native look and feel.This approach allows teams to leverage the strengths of C++ across different platforms, reducing the time and effort required to create consistent user experiences.
3Adopting functional programming principles can lead to cleaner and more maintainable code in mobile applications.This methodology helps in reducing bugs and improving the overall development workflow, especially in complex applications.
Common Pitfalls
1
Neglecting to optimize mobile applications for diverse hardware can lead to poor user experiences.
Developers often underestimate the impact of device fragmentation and performance variability, which can result in applications that perform well on high-end devices but fail on lower-end models.