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

Flutter Fast Development Practice in LINE Shopping App

Flutter Fast Development Practice in LINE Shopping App

Chia Cheng Chu
LINE Taiwan Engineering 6 - Android Dev Android Developer
https://linedevday.linecorp.com/2020/ja/sessions/3279
https://linedevday.linecorp.com/2020/en/sessions/3279

LINE DevDay 2020

November 26, 2020
Tweet

More Decks by LINE DevDay 2020

Other Decks in Technology

Transcript

  1. › LINE Shopping App Overview › Fast Development Background and

    Solution › What We’ve Used? › Challenges › Wrap-up and Summary Agenda
  2. › LINE Shopping App Overview › Fast Development Background and

    Solution › What We’ve Used? › Challenges › Wrap-up and Summary Agenda
  3. Smart Price Comparison Looking for when a product has the

    best price Looking for which shop has the best price
  4. › LINE Shopping App Overview › Fast Development Background and

    Solution › What we’ve used? › Challenges › Wrap-up and Summary Agenda
  5. Fast Development Solution The benefits of Flutter Stateful Hot Reload

    Built-in Material and Cupertino Design Widgets 60 FPS Expressive and Flexible UI Native Performance Fast Development Fast Development
  6. › LINE Shopping App Overview › Fast Development Background and

    Solution › What We’ve Used? › Challenges › Wrap-up and Summary Agenda
  7. Provider A wrapper around InheritedWidget to make them easier to

    use and more reusable https://pub.dev/packages?q=provider
  8. Clean Architecture › Separation of Concerns › The Dependency Rule

    https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html “Source code dependencies must point only inward, toward higher-level policies.” - The Dependency Rule
  9. Flow of Control in the Shopping App Product ProductSearch Repository

    ProductSearch ResultPage GraphQL SQLite ProductSearch Bloc ProductSearch Dao ProductSearch ApiService SearchProduct UseCase Dependency Inversion Principle Enterprise Business Rules Application Business Rules Interface Adapters Frameworks & Drivers Take Search Products as Example
  10. › LINE Shopping App Overview › Fast Development Background and

    Solution › What We’ve Used? › Challenges › Wrap-up and Summary Agenda
  11. • Unsupported HTTP Cookie SameSite in InAppWebview Plugin Issues •

    Keyboard Language Switch Malfunction in Android WebView Framework/Engine Issues Challenges Development Issues • Scrolling Performance Improvement in StaggerGridView
  12. Development Issues • Scrolling Performance Improvement in StaggerGridView • Unsupported

    HTTP Cookie SameSite in InAppWebview Plugin Issues • Keyboard Language Switch Malfunction in Android WebView Framework/Engine Issues Challenges
  13. Plugin Issues • Unsupported HTTP Cookie SameSite in InAppWebview •

    Keyboard Language Switch Malfunction in Android WebView Framework/Engine Issues Challenges Development Issues • Scrolling Performance Improvement in StaggerGridView
  14. › Unsupported HTTP Cookie SameSite in InAppWebview 3.0.0 Plugin Issues

    › File an issue › File a pull request › Clone and customize InAppWebview
  15. • Keyboard Language Switch Malfunction in Android WebView Framework/Engine Issues

    Plugin Issues • Unsupported HTTP Cookie SameSite in InAppWebview Challenges Development Issues • Scrolling Performance Improvement in StaggerGridView
  16. Hybrid Composition Hybrid composition refers to the ability of composing

    native views alongside Flutter widgets https://github.com/flutter/flutter/wiki/Hybrid-Composition
  17. Hybrid Composition Side Effect App is prone to crash while

    switching between foreground and background https://github.com/flutter/flutter/issues/63897
  18. Hybrid Composition Side Effect Beta channel is fine to use

    if necessary https://flutter.dev/docs/development/tools/sdk/releases?tab=macos
  19. › LINE Shopping App Overview › Fast Development Background and

    Solution › What We’ve Used? › Challenges › Wrap-up and Summary Agenda
  20. Wrap Up › One Stop Shopping › Smart Price Comparison

    › LINE POINTs Reward LINE Shopping App Overview › Limited Resources and Tight Schedule › Flutter Comes to Rescue › The Benefits of Flutter Fast Development Background and Solution › Dependency Injection: Provider › State Management: BLoC › Architecture: Clean Architecture What We’ve Used? › Development Issues › Plugin Issues › Framework/Engine Issues Challenges
  21. Summary › Integration of native views and Flutter widgets is

    still unstable on Android › Pay attention to Flutter plugin, framework/engine issues › Flutter is an efficient cross-platform UI toolkit