気が向いたんで

Flutter で

アプリを作ってみてる話

1. Flutter を使う理由

2. 何をつくるのか?

3. 実装について

1. Flutter を使う理由

まず、Flutter とは?

Google が開発した

モバイルアプリケーション

フレームワーク

  • Dart 言語

  • クロスプラットフォーム

  • UI をウィジェットで構成

  • 高速なホットリロード

  • VS Code 拡張による dev tools

で、選んだ理由は?

面白そうだから!

2. 何をつくるのか?

目的:リリースしたい

  • 簡単に作れるもの

  • 自分が欲しいもの

  • 最低限の機能

  • 通信を伴わない

簡単に作れるもの

  • 日常で使うもの

  • 管理を必要としないもの

自分が欲しいもの

ちょっと

「管理を必要としないもの」に

フォーカス

管理とは...

よい状態であるように気を配り、必要な手段を(組織的に)使ってとりさばくこと。

  • 入力を自動化(無くす、減らす)

  • トリガーを行動に紐付け(忘れさせない)

  • 最低限の情報(不要な思考を省く)

で、つくるものは...

飲む気スイッチ(仮)

飲むことを否定せず

飲み過ぎないように促す

そんなアプリ

  • トリガーを飲みはじめだけにする

  • 最低限の情報以外を表示しない

  • スイッチを押すと
    楽しく飲むぞとなる表示

  • 飲みすぎると
    ちょっと不安になる表示

やりたいこと

3. 実装について

セットアップについて

基本の実装

// マテリアルデザインのウィジェットを読み込み
import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp( // アプリケーション全体を管理
      title: '飲む気スイッチ', // タイトル
      home: Scaffold( // 画面全体を構成
        body: Center( // 中央表示のウィジェット
          child: Text('ほげほげ'), // テキストのウィジェット
        ),
      ),
    ),
  );
}
  • マテリアルデザイン​(Google)

  • クパチーノデザイン(iOS)

ウィジェットのテーマ

  • Container

  • Center

  • Row

  • ListView / ListTile

  • BottomNavigationBar

  • Card

  • Drawer

ウィジェットの種類

  • Text

  • Icon

  • CheckBox / Radio / Switch

  • RaisedButton

  • Animation

ウィジェットの状態

  • StatelessWidget: 状態を持たず静的

  • StatefulWidget: 状態を持ち動的

今回のアプリで考えたこと

デバイスに

データを保持するには

どうする?

  • 設定値などは SharedPreferences

  • イテラブルなデータは sqflite

タブごとページを維持するには

どうする?

ルーティングをしないで

CupertinoTabScaffold Class を使う

非同期で取得するデータを

ウィジェットに

反映するためにはどうする?

非同期でウィジェットを生成する

FutureBuilder​ を使う

アプリのコードは公開中

※開発中のコードはプルリクエストになってます

次回があれば

リリースまでの話をするかも

Flutter の

DX(開発者体験)は

抜群だと思う!

ぜひ Flutter を使ってみて

私にも色々と教えてください

END

気が向いたんで Flutter でアプリを作ってみてる話

By Syuji Higa

気が向いたんで Flutter でアプリを作ってみてる話

  • 251