Overview
The article discusses the development of the EatIn Suite, an internal food-rating platform at LinkedIn, built by a team of interns within three weeks. It highlights the technology choices made, including the use of Scala for Android apps, Play Framework for backend services, and a modular architecture to enhance productivity.
What You'll Learn
1
How to implement a modular architecture for web services
2
Why to choose Play Framework for rapid backend development
3
How to use Scala for Android app development effectively
Prerequisites & Requirements
- Basic understanding of web services and mobile app development
- Familiarity with Play Framework and Scala IDE(optional)
Key Questions Answered
What technology choices contributed to the success of the EatIn project?
The EatIn project utilized a modular architecture, the Play Framework for backend services, and Scala for Android app development. These choices allowed the team to work independently, maintain flexibility, and achieve rapid development within a limited timeframe.
How did the team manage code conflicts during development?
The team used five separate Git repositories to manage different components of the project, which prevented any merge conflicts during development. This modular approach allowed each team member to work independently on their respective parts without disrupting others.
What advantages does using Scala on Android provide?
Using Scala on Android enhances development speed and enjoyment by reducing boilerplate code and leveraging powerful features like Futures for asynchronous programming. This leads to cleaner and more maintainable code compared to traditional Java approaches.
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Programming Language
Scala
Used for developing Android applications to enhance productivity and maintainability.
Backend Framework
Play Framework
Chosen for its productivity features, enabling rapid development of web services.
API
Linkedin Apis
Used for user authentication and profile information retrieval.
Key Actionable Insights
1Adopting a modular architecture can significantly enhance team productivity and reduce conflicts during development.By organizing code into separate repositories for different components, teams can work independently, which is especially beneficial in fast-paced environments like hackathons or incubator projects.
2Utilizing the Play Framework can streamline backend development with features like hot-reload and easy setup.This is particularly useful when time is limited, allowing developers to see changes instantly and deploy with minimal commands.
3Implementing Scala for Android can lead to more concise and maintainable code, especially for handling asynchronous tasks.This approach can reduce the complexity of managing UI updates and background tasks, making it easier to develop responsive applications.
Common Pitfalls
1
Failing to manage UI updates on the main thread can lead to application crashes.
In Android, UI modifications must occur on the main thread. Developers should wrap UI code in a Runnable and use runOnUiThread to avoid threading issues.
2
Using Scala reflection libraries can unnecessarily increase APK size.
Reflection libraries can add 1-2MB to the APK size, which is significant for mobile applications. Developers should be cautious and consider alternatives to avoid bloating the app.
Related Concepts
Modular Architecture
Play Framework
Scala For Android Development
Linkedin Apis