nsoojin / MiniSuperApp-en

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

"What scalability means to a mobile developer"

I believe it's keeping both the user experience and the developer experience simple even if the mobile team and the app continue to grow in size.

A developer's skills show how well bottlenecks are handled during development. In the case of servers, bottlenecks occur when a large number of users get crowded. Still, in the case of mobile, bottlenecks occur when codes written by several developers get loaded in a single program."

What scalability means to a mobile developer

Class Content

Part 1. Code Level Architecture: Skills to Make a Reusable Code

The beginning of architecture is making an object small and combining the small objects into a complex feature. Massive View Controller, Massive View Model, and Massive Interactor are not problems only for the architecture, and they can change depending on the developer's application skills. Create a mini super-app based on a strong architecture framework RIBs, which has a strong composition.

Reading 1: Object-oriented Programming Seen Through Swift: Coding Habits to Avoid
Reading 2: A Developer and Ramyun (Instant Noodles) Recipe
Reading 3: Swift Asynchronous Programming and Error Handling Using Google/Promises

Part 2. Module Level Architecture: Modularization which considers maintenance and development speed

A 'loosely coupled module structure' is no different from a 'scalable architecture'. This is how companies like Grab, a super-app of which development is contributed by 200 iOS developers, and Airbnb, which is contributed by 75 developers, stay productive. Learn about why modularization reduces build time and increases productivity, and apply it to a mini super-app through practice.

Reading 1: Loose Coupling of a Mobile App
Reading 2: Learn Mobile Architecture and Development Experience from a Sourcery Developer

Part 3. Automated Testing

The reason why it's difficult for developers currently in the industry is that the legacy codes are written in a non-testable structure. But the codes written in practice are 99% testable. Once you learn the characteristics of testable codes and try writing the test yourself, it's easy to apply it to the legacy code little by little. Create a unit test, snapshot test, UI test, and integration test.

Reading1: The relationship between testing and good design, and the effect of bad design
Reading2: The Advantages of Writing a Test Code
Reading3: Making a uber/RIBs Unit Test
Reading4: Reducing Time Spent for an XCTest

Part 4. Scalable Infrastructure: Problems that cannot be solved with code alone

Creating and maintaining a scalable architecture requires not only the code but also the support of the development process. I'll be sharing with you some benefits that can be obtained by introducing feature flags and quality monitoring, and some good examples of a development culture that I've experienced.

Reading1: An endless journey to app stability
Reading2: Teamwork
Reading3: A mobile development environment where individuals and teams grow

About


Languages

Language:Swift 100.0%