Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The android eras tour

The android eras tour

Android Development evolved over the years

Erik Jhordan Rey

November 21, 2023
Tweet

More Decks by Erik Jhordan Rey

Other Decks in Programming

Transcript

  1. 2008 - 2014 - 2008 Android Initial Release 2014 -

    2017 2017 - 2021 2021 - 2023 “Android: Looking backward”
  2. • Android development started in 2003 • Acquired by Google

    in 2005 • Android SDK released in 2007 • Android 1.0 commercial release in 2008 HTC Dream Android: Looking backward
  3. 2008 - 2014 - 2008 Android Initial Release 2014 -

    2017 2017 - 2021 2021 - 2023 “Android Legendary” Java Open source libraries
  4. • Java Language • Eclipse, ADT Bundle, Android Studio •

    God Activities, RelativeLayout, findViewById, ListView, GridView • Asynctask, SqLiteOpenHelper, HttpURLConnection • Volley, ButterKnife, ViewPagerIndicator, ActionBarSherlock • Square libraries first versions (Retrofit, Okhttp 1, Dagger 1, Picasso) • Does not exist architecture guidelines for android, multiple MVC implementations • Limited UI design patterns • Inheritance based development (Manager, Helper, Utils classes) Android Legendary
  5. 2008 - 2014 - 2008 Android Initial Release 2014 -

    2017 2017 - 2021 2021 - 2023 “This is the android developer way” Java Open source libraries Material Design Architectural Patterns
  6. • Material Design • Strategies to develop testable and maintainable

    apps (SOLID, Clean Code, Clean Architecture) • Design Patterns (Repository, Dependency Injection, Service Locator, Singleton, Builder, Factory, Observer, etc) • Architecture UI Patterns proposals (MVP, MVVM, MVI, MV?) • Modularization, DDD, separation of concerns, and scalable architecture design • Refactoring, and Testing Tools (Junit, Mockito, MockWebserver, Robolectric) • Reactive Paradigms • RXJava2, Dagger2, Retrofit2, Glide • Kotlin early adopters This is the android developer way https://speakerdeck.com/erikjhordan_rey/android-apps-in-modular-structure-paradigms
  7. 2008 - 2014 - 2008 Android Initial Release 2014 -

    2017 2017 - 2021 2021 - 2023 “Android developers don’t lose faith” Java Open source libraries Material Design Architectural Patterns Kotlin Support AAC
  8. • Kotlin Official Support in 2017 • Android Architecture Components

    (View Binding, Lifecycle aware, Live Data, ViewModel, Room, Paging, Camera, Material Design, etc) • Simplify asynchronously code (Coroutines) • Android Kotlin-first approach in 2019 • Android’s team opinions over patterns and architecture • MVVM & Modularization Guides • Espresso and Testing libraries Android developers don't lose faith
  9. 2008 - 2014 - 2008 Android Initial Release 2014 -

    2017 2017 - 2021 2021 - 2023 “The Android team’s connect the dots” Java Open source libraries Material Design Architectural Patterns Kotlin Support AAC Modern Android Development (MAD)
  10. • Better documentation for Android Development • Android’s team recommended

    development tools, libraries, and architecture guidance • Jetpack Libraries to help developers follow best practices, reduce boilerplate code, and write code that works consistently across Android versions. • New modern toolkit for building native UI - Compose • Multiple tools to improve developer experience in Android Studio The Android team’s connect the dots
  11. Are associated with these characteristics New Android Devices Technology The

    latest processors, cameras, sensors, and displays. Longevity More RAM, faster SoCs, more durable flash chips leads to devices that have a longer functional lifespan, and often have longer software support. Hardware Better hardware leads to improved responsiveness, smoother animations, higher quality game graphics, AI/ML features, high quality media creation and playback.
  12. • View & ViewGroup • XML UI Design, findViewById •

    Fragments, CustomViews • Material Design, Material Design 2, Material Design 3 • Lifecycle aware components • Android Studio Layout Editor • Declarative UI, Compose Android UI Development
  13. • Declarative UI is cleaner, readable, and performant than Imperative

    UI. • Compose allows you to do more with less code compared to XML. • Compose is compatible with all your existing code • Create beautiful apps with support for Material Design, Dark theme, animations, and more Jetpack Compose https://developer.android.com/jetpack/compose
  14. You can incrementally migrate your app to Compose while still

    adding features to your app. Compose-View Interoperability Views Compose Compose Views
  15. 1. Build new feature screens with Compose 2. Identify reusable

    elements and start to create a library of common UI components 3. Incrementally migrate existing features to Compose screen by screen. (preferable write UI or screenshot testing to prevent breaking features) 4. Replace existing features one screen at a time, starting Low-risk, low-complexity screens 5. Compose-First to new app development 6. Use Compose for Wear OS, app widgets, and TV if your business requires Migration Strategy Compose
  16. • Web App Development: React, Angular, Vue, another JS Framework.

    • Hybrid App Development: Ionic, Cordova • Cross-platform App Development: Xamarin, React Native, Flutter, Kotlin Multiplatform, Compose Multiplatform • Native App Development: Android Framework, iOS cocoatouch, Swift UI Alternatives to develop mobile apps… https://speakerdeck.com/erikjhordan_rey/technologies-to-develop-mobile-apps
  17. • Choose the technology that allows you to advance faster

    and helps to achieve the objectives and expectations of the business with the resources you have • Make an assessment of what technologies and experiences are mastered by team members. • Analyze the budget you have, and the number of developers you can hire • Look for similar applications in the industry and research what technologies they are using, can help you verify or question your decision • Use the tools, libraries, and programming languages with your team knows and feels comfortable with, even better if your project benefited Takeaways
  18. • https://developer.android.com/modern-android-development • https://developer.android.com/jetpack/compose • https://github.com/android/compose-samples • https://www.youtube.com/@AndroidDevelopers • https://developer.android.com/topic/architecture#recommended-app-arch

    • https://developer.android.com/codelabs/jetpack-compose-migration#1 • From Views to Compose: Where can I start? • https://developer.android.com/jetpack/compose/adopt/for-large-teams • https://speakerdeck.com/erikjhordan_rey/ Further Reading