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

First presented by shrop at Decoupled Days 2020

Mark Shropshire

July 22, 2020
Tweet

More Decks by Mark Shropshire

Other Decks in Technology

Transcript

  1. ÂĞāłŶŋŽĢķù֔ Ό͉˟˞ —Îƈ͉ãŇŇŚƴ͉ƜƈČƀƈ͉ƔŚ͉ĬãƳČ͉ őãƔıƳČ̷ŇıńČ͉㎎ŇıÿãƔıŚő͉ ČƹŽČƀıČőÿČ̤͉ŽŽŇıÿãƔıŚőƈ͉ÿãő͉ ƴŚƀń͉ãőĆ͉ĤČČŇ͉ŏŚƀČ͉ŇıńČ͉ őãƔıƳČ͉㎎ŇıÿãƔıŚőƈ͉Śő͉ ŏŚþıŇČ͉ãőĆ͉ĆČƈńƔŚŽ̤͉—Îƈ͉ ĬãƳČ͉NŏŽƀŚƳČĆ͉ŽČƀĤŚƀŏãőÿČ͉ ãőĆ͉ŚNjıőČ͉ãÿÿČƈƈ͉Ƴƈ̤͉

    ƔƀãĆıƔıŚőãŇ͉ƴČþ͉ƈıƔČƈ̤ —Îƈ͉ÿãő͉ĬČŇŽ͉ıŏŽƀŚƳČ͉ ÿŚőƳČƀƈıŚőƈ͉ƔĬƀŚƜĥĬ͉ ŽČƀĤŚƀŏãőÿČ͉ãőĆ͉ őãƔıƳČ̷ŇıńČ͉ĤƜőÿƔıŚőãŇıƔƺ̤͉ ¯ĬČƺ͉ÿãő͉ãŇƈŚ͉ıŏŽƀŚƳČ͉ ÿŚőƳČƀƈıŚő͉ŚĤ͉ƜƈČƀƈ͉ƔŚ͉ ƺŚƜƀ͉ĤƜŇŇƺ͉őãƔıƳČ͉ŏŚþıŇČ͉ ㎎ŇıÿãƔıŚőƈ̤ !ŋłƑāũŭĢŋłŭ —Îƈ͉ãƀČ͉ĥŚŚĆ͉ƴĬČő͉ƔĬČƀČ͉ ıƈ͉ã͉Ňãÿń͉ŚĤ͉þƜĆĥČƔ͉ĤŚƀ͉őãƔıƳČ͉ ㎎ŇıÿãƔıŚő͉ĆČƳČŇŚŽŏČőƔ̤͉ *ƹıƈƔıőĥ͉ƴČþ͉ĆČƳČŇŚŽŏČőƔ͉ ƔČãŏƈ͉ÿãő͉þƜıŇĆ͉—Îƈ͉ŏƜÿĬ͉ ČãƈıČƀ͉ƔĬãő͉őãƔıƳČ͉ ㎎ŇıÿãƔıŚőƈ͉þČÿãƜƈČ͉ƔĬČƺ͉ ÿãő͉ÿŚőƔıőƜČ͉ƔŚ͉ƜƈČ͉I¯ia̟͉ ¢¢̟͉ãőĆ͉]ãƳã¢ÿƀıŽƔ̤ ŽùėāŶ ­ŭāũ1ƗťāũĢāłóā
  2. ÂĞāłŶŋ'āƑāķŋťpÖŶĢƑā ťťķĢóÖŶĢŋłŭ Ό͉˟˟ ÎĬČő͉ƺŚƜ͉őČČĆ͉ŏãƹıŏƜŏ͉ ƈŽČČĆ͉ŚĤ͉ƔĬČ͉ƔãƀĥČƔ͉ ĆČƳıÿČ̱ƈ̲̤͉BČőČƀãŇŇƺ̟͉—Îƈ͉ ƴıŇŇ͉őŚƔ͉þČ͉ãƈ͉ĤãƈƔ͉ãƈ͉őãƔıƳČ͉ ㎎ŇıÿãƔıŚő͉ŇãőĥƜãĥČƈ͉ãőĆ͉ ¢$_ƈ̤ kãƔıƳČ͉㎎ŇıÿãƔıŚőƈ͉ŏãńČ͉

    ƈČőƈČ͉ƴĬČő͉ƺŚƜ͉őČČĆ͉ƔŚ͉ þČ͉ıő͉ãő͉ŽŽ͉¢ƔŚƀČ͉ƈƜÿĬ͉ãƈ͉ ƔĬČ͉ŽŽŇČ͉ŽŽ͉¢ƔŚƀČ͉Śƀ͉ ƔĬČ͉BŚŚĥŇČ͉—Ňãƺ͉¢ƔŚƀČ̤ kãƔıƳČ͉㎎ŇıÿãƔıŚőƈ͉ãƀČ͉ ĥƀČãƔ͉ĤŚƀ͉ČőƔČƀŽƀıƈČƈ͉ƔĬãƔ͉ őČČĆ͉ƔŚ͉ĆıƈƔƀıþƜƔČ͉ŏŚþıŇČ͉ ãőĆ͉ĆČƈńƔŚŽ͉㎎ŇıÿãƔıŚőƈ̤ ťťœŶŋũāŭ kãƔıƳČ͉㎎ŇıÿãƔıŚő͉¢$_ƈ͉ ŽƀŚƳıĆČ͉ĆıƀČÿƔ͉ãÿÿČƈƈ͉ƔŚ͉ƔĬČ͉ ŇãƔČƈƔ͉ĬãƀĆƴãƀČ͉ãőĆ͉ĤČãƔƜƀČƈ͉ ãƳãıŇãþŇČ͉Śő͉ČãÿĬ͉ŽŇãƔĤŚƀŏ̤͉ ¢ŚŏČ͉ŽŇãƔĤŚƀŏ͉ĤČãƔƜƀČƈ͉ãƀČ͉ ŚőŇƺ͉ãÿÿČƈƈıþŇČ͉ĤƀŚŏ͉őãƔıƳČ͉ ㎎ŇıÿãƔıŚőƈ͉̱Č̤ĥ̤̟͉—ƜƈĬ͉ őŚƔınjÿãƔıŚőƈ͉ıő͉ıt¢̲̤ DāÖŶŽũāóóāŭŭ œťāāù
  3. Ό͉ˡ˟ Ɣ ¶ƔıŇıDŽČ͉ƔĬČ͉BŚŚĥŇČ͉—Ňãƺ͉ãőĆ͉ ŽŽŇČ͉ŽŽ͉¢ƔŚƀČ͉ƔŚ͉ŏãƀńČƔ͉ ¶ŏãŏı͉͉͉͉ Ɣ _ČČŽ͉ƔĬČ͉¶ŏãŏı͉šČÿıŽČ͉ iãĥãDŽıőČ͉þƀãőĆ͉ƔŚŽ͉ŚĤ͉ŏıőĆ Ɣ —ƀŚƳıĆČ͉ƜƈČĤƜŇ͉ĤČãƔƜƀČƈ͉őŚƔ͉

    ãƳãıŇãþŇČ͉Śő͉ƔĬČ͉ƴČþƈıƔČ Ɣ ¶ƔıŇıDŽČ͉őãƔıƳČ͉ŽŇãƔĤŚƀŏ͉ ĤƜőÿƔıŚőãŇıƔƺ͉őŚƔ͉ãƳãıŇãþŇČ͉ ƴıƔĬ͉—Î͉ƔČÿĬőŚŇŚĥƺ Ό͉ˡ˟ pÖŶĢƑāmŋðĢķāťť­ŭā!Öŭā
  4. Ό͉ˡˤ ˜āŭŋŽũóāŭ Ɣ ĬƔƔŽƈ̞̪ ̪ǍƜƔƔČƀ̤ĆČƳ͉ Ɣ ĬƔƔŽƈ̞̪ ̪njƀČþãƈČ̤ĥŚŚĥŇČ̤ÿŚŏ͉ Ɣ ĬƔƔŽƈ̞̪

    ̪ƴƴƴ̤ÿŚőƔČőƔãÿŏƈ̤Śƀĥ͉ Ɣ ĬƔƔŽƈ̞̪ ̪ĥıƔĬƜþ̤ÿŚŏ̪ƈĬƀŚŽ̪ÿŚőƔČőƔã̫ǍƜƔƔČƀ͉