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

Decoupled Drupal with Flutter

Decoupled Drupal with Flutter

Decoupled Drupal has become commonplace with JavaScript front-end frameworks. That setup makes a lot of sense for decoupled websites and progressive web applications. What about accessing Drupal content from within native mobile Android and iOS applications, native desktop applications, and more? That is just what this session will dive into; combining the power of Drupal as a CMS, and Flutter for super fast and beautiful native apps.

Flutter is a Google-developed open source UI toolkit for building amazing, natively compiled applications for mobile, web, and desktop from one codebase. Flutter is user and developer-focused around four vision pillars: beautiful, fast, productive, and open. While it is best known for helping launch mobile native apps, such as the official Hamilton app, it is now being used for building native desktop and web applications.

We will kick off this session discussing how native applications can benefit from integration with Drupal for content delivery to your users. Attendees will learn about native application use cases and when to use native application vs. PWAs (Progressive Web Applications). The session will wrap with a live mobile app demo, including code examples from the Contenta Flutter open source project!

Topics Covered

Why consume Drupal content with native applications?
Drupal and native application architecture
What’s Flutter?
Demo - Recipe magazine companion mobile app
Consuming content via Contenta CMS API
Saving persistent state and user data with Google Firebase

Presented by shrop at Drupal NoVA

Mark Shropshire

September 15, 2020
Tweet

More Decks by Mark Shropshire

Other Decks in Technology

Transcript

  1. Today’s Agenda 1. Why Drupal + Native Applications? 2. What’s

    Flutter? 3. What’s Firebase? 4. Umami Recipe Magazine Native App 5. Q&A
  2. As the Senior Director of Development, Mark “shrop” loves working

    at the intersection of leadership and technology. Over his 20-plus-year career as a technical team leader, Shrop held IT roles at a large urban research university and a nationally recognized graphic communications company prior to Mediacurrent. He has a passion for personal and team growth, aligning individual purpose with Mediacurrent’s vision. Shrop focuses on empowering teams to excel while using best of class open source technology solutions. In addition, Shrop is an organizer and frequent public speaker at meetups and conferences, talking about leadership, technology, productivity, and mentorship. Mark Shropshire Senior Director of Development /in/markshropshire @shrop
  3. Who We Are We are Drupal pioneers, digital strategy experts,

    open source advocates, researchers, designers, and innovators who solve technology challenges.
  4. Our Mission To bring together the most talented team members

    to provide world-class solutions for the web.
  5. Drupal can be setup as a content hub, providing structured

    content for all types of user interfaces. It is an excellent CMS (Content Management System) backend for web and native applications where content editing experience and 3rd party integrations are important. | 8 Drupal
  6. | 9 In 2015 Alex Russell and Frances Berriman coined

    the name Progressive Web Apps to describe a collection of open web APIs and progressive enhancement strategies that allow for cross-platform compatibility. PWA user experience rivals that of native applications. Progressive Web Apps
  7. When to Build a PWA | 10 PWAs allow users

    to have native-like application experience. Applications can work and feel more like native applications on mobile and desktop. PWAs have Improved performance and offline access vs. traditional web sites. PWAs can help improve conversions through performance and native-like functionality. They can also improve conversion of users to your fully native mobile applications. Conversions PWAs are good when there is a lack of budget for native application development. Existing web development teams can build PWAs much easier than native applications because they can continue to use HTML, CSS, and JavaScript. Budget User Experience
  8. When to Develop Native Applications | 11 When you need

    maximum speed of the target device(s). Generally, PWAs will not be as fast as native application languages and SDKs. Native applications make sense when you need to be in an App Store such as the Apple App Store or the Google Play Store. Native applications are great for enterprises that need to distribute mobile and desktop applications. App Stores Native application SDKs provide direct access to the latest hardware and features available on each platform. Some platform features are only accessible from native applications (e.g., Push notifications in iOS). Feature Access Speed
  9. Always start with responsive web applications and consider using PWA-related

    technologies. Native applications become options based on project needs: • Marketing in app stores • Enterprise deployment • Application features and performance | 12 Application UX Options Responsive PWA Native
  10. | 14 Flutter is Google’s UI toolkit for building beautiful,

    natively compiled applications for mobile, web, and desktop from a single codebase. flutter.dev
  11. Google is putting a large amount of resources into building

    and ensuring Flutter’s chance to succeed. • Dedicated team develops Flutter • 1st class integrations with Firebase, Android Developer Studio, Visual Studio Code, and more • Fully open! • Excellent documentation • https:/ /pub.dev - Dart and Flutter packages | 15 Google
  12. Google is putting a large amount of resources into building

    and ensuring Firebase’s chance to succeed. • Dedicated team develops Firebase • 1st class integrations with Android, iOS, web, Unity, and C++ • Excellent documentation | 29 Google
  13. | 31 • Utilize the Google Play and Apple App

    Store to market Umami • Keep the Umami Recipe Magazine brand top of mind • Provide useful features not available on the website • Utilize native platform functionality not available with PWA technology | 31 Native Mobile App Use Case
  14. Flutter frontend for Contenta CMS goals • Flutter app for

    Android and iOS • Decouple Drupal 8 content (read only) • Use Firestore to store app user data • Open source codebase for learning Flutter | 32 Hello, Contenta Flutter! https:/ /github.com/shrop/contenta_flutter
  15. | 33 Contenta Flutter Architecture Drupal 8 Backend (Contenta CMS)

    Firebase Firestore Flutter App Recipes via JSON API (read only) Save and retrieve favorites (+additional data in the future)
  16. | 36 Resources • https:/ /flutter.dev • https:/ /firebase.google.com •

    https:/ /www.contentacms.org • https:/ /github.com/shrop/contenta_flutter