プログラミング経験一切不要!
ぼく自身の
長い挫折の黒歴史から生まれた
プログラミング挫折撲滅プロジェクト
「みんプロ式」。
今最も注目のアプリ開発ツール
「Flutter(フラッター)」を使って
経験ゼロでもたった3ヶ月で
iOS・Androidアプリが
”いっぺんに”作れるようになる
ノウハウを
約300本・25時間を超える
動画テキストに凝縮した
完全初心者・挫折した人
専門プログラム。
無制限の質問サポート付きで、
あなたをプログラミング初心者から
脱却させます。
(30日間全額返金保証付き)
みんプロ公式メルマガにご登録で動画配信コースの受講料金10%OFF!!
(注)このコースはコメント機能を使ってプログラミングサポーター(講師)へ質問が行えるバージョンです。質問機能が不要な方は、よりリーズナブルな価格で受講いただける「質問対応無し版」(定価:17,900円)もご用意してありますので、そちらをご検討ください。
今すぐはじめよう!
こんな方におすすめ
- スマホアプリ(iOS・Android)を作ってみたいけど、プログラミング経験ゼロの完全初心者・あるいは一度挫折してしまった方
- しっかりしたカリキュラムで、スマホアプリ開発に最低限必要なスキルを3ヶ月で習得したい方
- 今最も注目のアプリ開発ツール「Flutter(フラッター)」の基礎を日本語で学びたい方
- なるべく独学に近い形で自分の好きな時間帯に学習したい方
- ホームスクール・通信制学校・フリースクール等の教材にも
こんな方にはおすすめできません(必ずご一読願います)
◆ プログラミングサポーター(講師)のキャラと言動が生理的に合わない方
講義は関西弁で展開されます。聞く方によってはややクセが感じられるかと思いますので、無料で公開しているレクチャー動画(以下のカリキュラムのコーナーで「プレビュー」と書かれたレクチャー)をご覧になった上で、受講のご判断をして頂きますようお願い致します。
◆ 詳しい解説はいいからとにかく手数を増やしたい方
「みんプロ式」では、受講生の方に表面的ではないしっかりとしたスキル・知識を身につけて頂きたいとの想いから、解説パートを充実させています。従って「詳しい解説はいいからとにかく手数を増やしたい」という方のニーズには合致しない可能性が高いので、カリキュラム内容をご覧になった上で、受講のご判断をして頂きますようお願い致します。
◆ 自分で手を動かしてコードを書くのが嫌な方
プログラミングは動画テキストを眺めているだけでは上達しません。実際に手を動かしてコードを書いて「からだでおぼえる」ことをやらないと、どんな講座でも絶対に出来るようになりません。ですので、自分で手を動かすことを良しとしない方には、この講座はおすすめできません。逆に言うと、このカリキュラムに沿って実際に手を動かして頂ければ、必ず約3ヶ月でFlutterを使ったスマホアプリ開発(iOS・Android)に最低限必要なスキルを身につけることができます。
(注1)AndroidアプリをGoogle Playからリリースするためには、開発者登録料・25米ドル(1回のみ)が必要になります。
(注2)iOSアプリをApp Storeからリリースするためには、Macパソコンと開発者登録料・99米ドル(年間)が必要になります(WindowsパソコンではiOSアプリをリリースすることはできません)。
約300本・25時間を超える動画テキストに凝縮した
完全初心者・挫折した人専門プログラム
カリキュラム
-
プレビュー007:オープニング(初心者でない方はこのセクションは飛ばして頂いて構いません) (1:15)
-
プレビュー008:スマホとは(歴史・保有台数・市場規模) (5:04)
-
プレビュー009:スマホ界の2大巨塔・AndroidとiOS[iphone]との違いとは (3:17)
-
スタート010:アプリとは(ハードウェアとソフトウェア) (1:06)
-
スタート011:プログラミングとは (2:12)
-
スタート012:プログラミング処理の基本<文・関数(メソッド)・クラス> (6:11)
-
プレビュー013:プログラミングの3ステップ(ブロック作りと同じ) (2:39)
-
スタート014:プログラムをアプリになるまでの仕組み(コンパイルとビルド) (4:27)
-
プレビュー015:オープニング(Flutterアプリを作るために必要な道具とは) (3:47)
-
スタート016:【Windows】Flutterアプリの開発ツール(SDK)の設定をしよう (7:50)
-
スタート017:【Windows】Android Studioのダウンロードとインストールをしよう (2:45)
-
スタート018:【Windows】Androidアプリを実機で動かすための設定をしよう(Android Studio) (3:10)
-
スタート019:【Windows】Androidアプリをエミュレーターで動かすための設定をしよう(Android Studio) (4:08)
-
スタート020:【Mac】Flutterアプリの開発ツール(SDK)の設定をしよう (8:47)
-
スタート021:【Mac】Android Studioのダウンロードとインストールをしよう (3:13)
-
スタート022:【Mac】Androidアプリを実機で動かすための設定をしよう(Android Studio) (2:40)
-
スタート023:【Mac】Androidアプリをエミュレーターで動かすための設定をしよう(Android Studio) (4:06)
-
スタート024:【Mac】Xcodeのダウンロードとインストールをしよう (2:51)
-
スタート025:【Mac】iOSアプリを実機で動かすための設定をしよう(Xcode) (8:36)
-
スタート026:【Mac】iOSアプリをシミュレーターで動かすための設定をしよう(Xcode) (2:27)
-
スタート027:【Windows・Mac共通】Android Studioの初期設定をしよう(Flutter/Dartプラグインのインストール等) (7:55)
-
プレビュー028:オープニング(今回作るアプリの紹介[はじめてのアプリ]) (1:56)
-
スタート029:Android Studioで新しいFlutterプロジェクトを作ってみよう (7:13)
-
スタート030:【初心者向け解説】プロジェクトをWindowsエクスプローラーあるいはMacのFinderで見る方法 (1:38)
-
スタート031:既に作ったプロジェクトを開いてみよう(作りかけのプロジェクトも含む) (1:51)
-
プレビュー032:【初心者向け解説】プログラミングの天才に学ぶAndroid Studioに行く前にすべきこと(スマホアプリを作るための3ステップ) (3:41)
-
スタート033:<資料>設計図(はじめてのアプリ)
-
プレビュー034:今回作るアプリの設計図を紙に書こう(はじめてのアプリ) (3:00)
-
スタート035:Flutterプロジェクトのフォルダ構造を知ろう(最低限抑えておくべき3兄弟) (11:21)
-
スタート036:<資料>今回のアプリで使うリソース
-
スタート037:アプリで使う画像をプロジェクトに取り込もう(小道具のプロジェクトへの取り込み方3ステップ) (6:38)
-
プレビュー038:Flutterはどういう順番でコード書いたらええねん6ステップ (8:15)
-
スタート039:アプリ全体に共通する部分(アプリのルート部分)を実装しよう (6:20)
-
スタート040:【初心者向け解説】Dartプログラミングはたったの2ステップしかない! (4:59)
-
スタート041:【初心者向け解説】クラスのインスタンス化(初期化)とは (8:07)
-
スタート042:【初心者向け解説】Dartにおけるメソッド(関数)の作り方 (8:53)
-
スタート043:【解説】Widget(ウィジェット)とは (13:35)
-
スタート044:「StatefulWidget」を使ってホーム画面の外枠を実装をしよう (6:22)
-
スタート045:【初心者向け解説】ファイル・クラス・関数(メソッド)等の名前付けの規則 (4:00)
-
スタート046:【初心者向け解説】プロジェクト内のファイル・フォルダ名の変更の仕方 (1:16)
-
スタート047:「Scaffold」を使ってホーム画面をマテリアルデザイン仕様にしてアプリバーを設定しよう (9:05)
-
スタート048:【解説】Material Design(マテリアルデザイン)とは(MaterialAppの謎解き) (13:27)
-
スタート049:【解説】Widgetの並べ方超基本3パターン (2:53)
-
スタート050:「Column」を使ってWidgetを縦方向に並べよう (3:45)
-
スタート051:「Text」を使って文字を表示させよう (5:32)
-
スタート052:「Center」を使ってWidgetを中央寄せしよう (4:04)
-
スタート053:「TextField」を使って文字入力欄を設置しよう (5:16)
-
スタート054:「Image.asset」を使ってプロジェクトに取り込んだ画像を表示させよう (2:25)
-
スタート055:「ElevatedButton」を使ってボタンを表示させよう (5:11)
-
スタート056:「Container」を使って画面全体に余白(padding)を作ろう (5:05)
-
スタート057:【解説】Flutter Outlineの基本的な使い方 (3:11)
-
スタート058:「SizedBox」を使ってボタンを横幅いっぱいに拡げよう (4:10)
-
スタート059:「Expanded」を使って画像の縦幅を残り枠いっぱいに拡げよう (3:30)
-
スタート060:ボタンを押したら文字を表示させる処理を実装しよう(変数の作り方) (6:44)
-
スタート061:入力欄(TextField)に入れた文字を取得して表示させよう (3:39)
-
スタート062:ボタンを押したら画像を表示させる処理を実装しよう (1:41)
-
スタート063:【解説】Dartにおけるスコープ(変数・関数にアクセスできる[参照できる・使える]範囲) (7:17)
-
スタート064:「setState」メソッドを使って設定した文字・画像を画面に表示させよう(アプリの状態変化を画面に反映させる) (4:59)
-
スタート065:【初心者向け解説】プログラミングにおける「=」とは(代入) (4:39)
-
スタート066:アプリを動かす前にプロジェクトを一旦きれいにしよう(flutter clean) (0:54)
-
スタート067:ソースコードのフォーマットを整えよう(Reformat File) (1:23)
-
スタート068:【Windows・Mac共通】作ったアプリをAndroidエミュレーターで動かしてみよう (2:45)
-
スタート069:【Windows・Mac共通】作ったアプリをAndroid実機で動かしてみよう (2:23)
-
スタート070:【Macのみ】作ったアプリをiOSシミュレーターで動かしてみよう (1:54)
-
スタート071:【Macのみ】作ったアプリをiOS実機で動かしてみよう(素晴らしきマルチプラットフォームの世界) (3:09)
-
スタート072-1:【初心者向け解説】再生ボタン[Run]とゲジゲジボタン[Debug]の違い(実は両方ともFlutterではデバッグ[Debug]モード) (4:02)
-
スタート072-2:【初心者向け解説】Flutterアプリを動かす3つのモード(Debugモード / Releaseモード / Profileモード) (4:15)
-
スタート073:【+α】インターネット上の画像をアプリで表示させてみよう(Image.network) (2:24)
-
スタート074:【+α】デバッグバナーを非表示にしよう (1:32)
-
スタート075:【+α】アプリ全体のテーマをダークモードに変更しよう (2:14)
-
スタート076:【+α】「CupertinoApp」を使ってアプリの見た目をiOS仕様に変えよう (8:07)
-
スタート077:<資料>今回作ったアプリのプロジェクト(はじめてのアプリ)
-
プレビュー078:オープニング(今回作るアプリの紹介[ツッコミマシーン]) (1:40)
-
スタート079:<資料>今回のアプリの設計図(ツッコミマシーン)
-
プレビュー080:今回作るアプリの設計図を紙に書こう(ツッコミマシーン) (2:45)
-
スタート081:Android Studioで今回作るアプリのプロジェクトを作ろう (3:31)
-
スタート082:<資料>今回のアプリで使うリソース
-
スタート083:アプリで使う効果音ファイルをプロジェクトに取り込もう (4:45)
-
スタート084:アプリ全体に共通する部分(アプリのルート部分)を実装しよう(main.dart) (5:52)
-
スタート085:【解説】runApp関数とは (3:33)
-
スタート086:【初心者向け解説】クラスの継承(extends)とメソッドのオーバーライド(override)とは (11:13)
-
スタート087:【初心者向け解説】「ご先祖様」に「子孫」を代入するのはOK(プログラミングにおける「=」とは[完全版]) (2:42)
-
プレビュー088:「StatefulWidget」を使ってホーム画面の外枠を実装をしよう(home_screen.dart) (3:45)
-
スタート089:「Scaffold」を使ってホーム画面をマテリアルデザイン仕様にしてアプリバー(AppBar)を設定しよう (4:15)
-
スタート090:「Column」と「Row」を使ってボタンを3行2列の碁盤の目に並べよう (7:57)
-
スタート091:「Expanded」と「flex」を使って碁盤の目を画面いっぱいに均等に並べよう (5:39)
-
スタート092:「CrossAxisAlignment」を使ってボタンの大きさを枠いっぱいに拡げよう (5:56)
-
スタート093:「Container.padding」を使って画面全体と各枠内のボタンに余白(padding)を作ろう (5:11)
-
スタート094:【初心者向け解説】「List(配列)」とジェネリクス(総称型)とは (11:44)
-
スタート095:「List」を使って6つのボタンに表示させる文字をセットしよう (7:50)
-
スタート096:【初心者向け解説】メモリとは(音のメモリ再生(ダウンロード再生)とストリーミング再生の違い) (8:43)
-
スタート097:【解説】Flutterアプリで効果音を出す方法5ステップ(soundPoolパッケージの使い方) (5:38)
-
スタート098:soundPoolパッケージをプロジェクトに追加しよう(パッケージを使うための2ステップ) (6:08)
-
スタート099:【解説】pubspec.yamlファイルとは (6:01)
-
スタート100:【解説】StatefulWidgetはどうやって状態管理をしているのか (8:23)
-
スタート101:SoundPoolクラスの初期化と破棄の実装をしよう (6:31)
-
スタート102:効果音のサウンドIDをセットしよう (4:44)
-
スタート103:【初心者向け解説】ビルト・イン型クラスとは(Dartにおける2種類のクラス) (11:10)
-
スタート104:【解説】非同期処理(async-await)とは (8:13)
-
スタート105:【解説】「Future」とは (8:27)
-
スタート106:【解説】Dartでの非同期処理の使い方3原則 (10:42)
-
スタート107:プロジェクトに取り込んだ効果音ファイルをメモリにロードしよう(rootBundle#load) (9:53)
-
スタート108:【解説】プロジェクトに取り込んだデータ(assets)のロード方法(rootBundleとは) (11:32)
-
スタート109:ボタンを押したら効果音を鳴らす処理を実装しよう (2:38)
-
スタート110:initStateで非同期処理ができるようにしてアプリを動かしてみよう (8:20)
-
スタート111:【初心者向け解説】「空っぽ(null)」と「空白("")」の違いとは (2:32)
-
プレビュー112:【初心者向け解説】エラーはどこでわかるのか(プログラミングにおける3種類のエラー) (6:28)
-
スタート113:【解説】StatefulWidgetはなぜStateオブジェクトと別クラスで分離されているのか(Widgetの本当の正体とは) (12:28)
-
スタート114:【解説】Flutterとネイティブアプリ開発(Android/iOS)の状態管理方法比較 (6:35)
-
スタート115:【+α】非同期処理に例外処理を実装してみよう (5:38)
-
スタート116:【+α】RaisedButtonをカスタマイズしてみよう (11:08)
-
スタート<資料>今回作ったアプリのプロジェクト(ツッコミマシーン)
-
プレビュー118:オープニング(今回作るアプリの紹介[計算脳トレ]) (5:43)
-
スタート119:<資料>今回の作るアプリの設計図(計算脳トレ)
-
プレビュー120:今回作るアプリの設計図を紙に書こう(計算脳トレ) (4:48)
-
スタート121:Android Studioで今回作るアプリのプロジェクトを作ろう (2:31)
-
スタート122:<資料>今回のアプリで使うリソース
-
スタート123:アプリで使うリソース(画像・音)をプロジェクトに取り込もう (3:38)
-
スタート124:アプリ全体に共通する部分(アプリのルート部分)を実装しよう(main.dart) (4:38)
-
スタート125:[ホーム画面]外枠を実装をしよう(home_screen.dart) (3:45)
-
スタート126:[ホーム画面]「SafeArea」を使ってアプリバー(AppBar)無しのレイアウトに変えよう (3:15)
-
スタート127:[ホーム画面]「Column」を使ってWidgetを縦方向に並べよう (4:22)
-
スタート128:[ホーム画面]「Expanded」と「Container」を使ってボタンを画面最下部中央に設置しよう (5:35)
-
スタート129:[ホーム画面]「ElevatedButton.icon」を使ってボタンにアイコンをつけて見た目をカスタマイズしよう (6:30)
-
スタート130:【初心者向け解説】マテリアルアイコンとは (4:08)
-
スタート131:【解説】Flutterアプリにおける画面・文字の大きさの単位とは(物理ピクセルと論理ピクセル) (13:13)
-
スタート132:【+α】「MediaQuery.of」メソッドを使って画面のサイズ(論理ピクセル)を取得しよう (2:30)
-
プレビュー133:【解説】「DropdownButton」の使い方3ステップ (2:07)
-
スタート134:[ホーム画面]「SizedBox」を使ってWidget間に空白を設定しよう (4:18)
-
スタート135:[ホーム画面]「DropdownMenuItem」を使って「DropdownButton」に表示させる選択肢をセットしよう(items属性) (6:51)
-
スタート136:【+α】「Cascade Notation(..)」を使ってコードをシンプルにしよう (3:17)
-
スタート137:[ホーム画面]「DropdownButton」で選択されたアイテムをセットしよう(value属性) (5:26)
-
スタート138:[ホーム画面]「DropdownButton」でアイテムが選択された時の処理を実装しよう(onChanged属性) (2:23)
-
スタート139:【解説】onPressed/onChanged属性の中身はどうなっているのか (8:03)
-
スタート140:【解説】Flutterにおける画面遷移の方法(NavigatorとMaterialPageRoute) (8:27)
-
スタート141:[ホーム画面]スタートボタンをクリックしてテスト画面を開く処理を実装しよう (7:18)
-
スタート142:[ホーム画面・テスト画面]名前付きパラメータ(Named Parameter)を使って選択した問題数をホーム画面からテスト画面に渡そう (7:25)
-
スタート143:【初心者向け解説】Flutterにおける2つの定数(「const」と「final」) (6:22)
-
スタート144:「const」を使って描画パフォーマンスを向上させよう(Flutter Performanceの使い方) (10:44)
-
スタート145:【初心者向け解説】どこからでもインスタンスを経由せずに直接使えるメンバを作る2つの方法(「top-level」と「static」) (9:53)
-
スタート146:[テスト画面]画面全体のレイアウトの枠組みを作ろう(SafeArea/Container/Column) (6:37)
-
スタート147:[テスト画面]「Table」と「Center」を使ってスコア表示部分を実装しよう (11:06)
-
プレビュー148:[テスト画面]問題表示部分を実装しよう(Expandedとflex/Container) (12:17)
-
スタート149:[テスト画面]こたえ合わせボタン部分を実装しよう(RaisedButton/SizedBox/Container) (3:09)
-
スタート150:[テスト画面]もどるボタン部分を実装しよう(RaisedButton/SizedBox/Container) (2:44)
-
スタート151:[テスト画面]電卓ボタン部分を実装しよう(Table/Container) (7:56)
-
スタート152:[テスト画面]「Stack」を使って○・☓画像とテスト終了テキスト部分のWidgetを積み重ねよう (7:39)
-
スタート153:【初心者向け解説】条件分岐の「if文」と比較演算子(プログラミングは3つの流れ) (8:01)
-
スタート154:[テスト画面]テスト開始前の初期設定をしよう(①:ホーム画面で選択した問題数の引き継ぎ) (6:01)
-
スタート155:[テスト画面]テスト開始前の初期設定をしよう(②:効果音の準備) (11:23)
-
スタート156:[テスト画面]出題処理を実装しよう(①:出題時の初期設定) (6:16)
-
スタート157:[テスト画面]出題処理を実装しよう(②:乱数(Random)を使って出題) (6:45)
-
スタート158:[テスト画面]電卓ボタンを押す処理を実装しよう (11:20)
-
スタート159:[テスト画面]こたえ合わせ処理を実装しよう(①:初期設定) (4:52)
-
プレビュー160:【初心者向け解説】三項条件演算子とは(?/:) (3:27)
-
スタート161:[テスト画面]こたえ合わせ処理を実装しよう(②:正解判定) (9:09)
-
スタート162:[テスト画面]こたえ合わせ処理を実装しよう(③:正答率の計算) (3:36)
-
スタート163:[テスト画面]こたえ合わせ処理を実装しよう(④:終了判定) (2:28)
-
スタート164:[テスト画面]こたえ合わせ処理を実装しよう(⑤:「Timer」を使って1秒後に次の問題を出題) (2:53)
-
スタート165:<資料>次のレクチャー(タイマー処理の解説)で使うプロジェクト
-
スタート166:【解説】タイマー処理(Timer)とは (10:44)
-
スタート167:[テスト画面]もどるボタンを押したらホーム画面に戻る処理を実装しよう(Navigator.popメソッド) (6:41)
-
スタート168:<資料>今回作ったアプリのプロジェクト(計算脳トレ)
-
プレビュー169:オープニング(今回作るアプリの紹介[私だけの単語帳]) (6:52)
-
スタート170:<資料>今回の作るアプリの設計図(私だけの単語帳)
-
プレビュー171:今回作るアプリの設計図を紙に書こう(私だけの単語帳) (8:07)
-
スタート172:Android Studioで今回作るアプリのプロジェクトを作ろう (2:39)
-
スタート173:<資料>今回の作るアプリのリソース
-
スタート174:アプリで使うリソース(画像)をプロジェクトに取り込もう (4:16)
-
スタート175:アプリ全体に共通する部分(アプリのルート部分)を実装しよう (3:17)
-
スタート176:[ホーム画面]外枠の実装をしよう(アプリバー無しのマテリアルデザイン仕様) (2:26)
-
スタート177:[ホーム画面]画面全体のレイアウトの枠組みを作ろう (5:03)
-
スタート178:カスタムフォントの設定をしよう(カスタムフォントの使い方4ステップ) (8:37)
-
スタート179:「Divider」を使って横線を引こう (3:55)
-
スタート180:「VoidCallback」を使ってボタンをカスタムウィジェットで作ろう (12:02)
-
スタート181:<資料>次のレクチャー(VoidCallbackの解説)で使うプロジェクト
-
スタート182:【解説】「VoidCallback」とは何か (6:12)
-
スタート183:【解説】ラジオボタン(RadioListTile)の使い方4ステップ (6:31)
-
スタート184:[ホーム画面]ラジオボタンの表示部分を実装しよう(title属性) (3:13)
-
スタート185:[ホーム画面]ラジオボタンにセットする値を設定しよう(value/groupValue属性) (2:42)
-
スタート186:[ホーム画面]ラジオボタンが選択されたときの処理を実装しよう(onChanged属性) (5:33)
-
スタート187:[ホーム画面]単語一覧画面に遷移する処理を実装しよう (4:41)
-
スタート188:[ホーム画面]テスト画面に遷移する処理を実装しよう (4:45)
-
スタート189:【解説】「BuildContext」とは (15:01)
-
スタート190:「AppBar」を使えば前の画面に戻る処理を実装する必要がない! (5:15)
-
スタート191:[一覧画面]「FloatingActionButton」を使って編集画面に遷移する処理を実装しよう (10:44)
-
スタート192:[編集画面]問題入力部分を実装しよう (6:32)
-
スタート193:[編集画面]こたえ入力部分を実装しよう (1:46)
-
プレビュー194:[編集画面]「SingleChildScrollView」を使ってコンテンツが画面からはみ出さないようにしよう (3:09)
-
スタート195:[編集画面]「WillPopScope」を使って一覧画面に戻る処理を実装しよう (6:49)
-
スタート196:【初心者向け解説】データベース(Database:DB)とは (5:53)
-
プレビュー197:【解説】Flutter/Dartで使えるデータベースライブラリ「Moor」とは (6:07)
-
スタート198:【解説】データベースライブラリ「Moor」の使い方9ステップ (12:56)
-
スタート199:Moorパッケージをプロジェクトに追加しよう(Moorの使い方9ステップ①) (2:59)
-
スタート200:コード生成用ファイルとテーブルクラスの設定をしよう(Moorの使い方9ステップ②③) (6:11)
-
スタート201:【解説】SQLiteで使えるデータの型とテーブルクラスのコードの解説 (6:13)
-
スタート202:【初心者向け解説】「Set」とは (3:25)
-
スタート203:【初心者向け解説】「get」とは (5:12)
-
スタート204:データベースクラスの設定をしよう(Moorの使い方9ステップ④) (5:28)
-
スタート205:【解説】Dartにおける7つのコンストラクタ(「:」の謎解き) (10:53)
-
スタート206:flutterコマンドを使ってMoor用のコードを生成しよう(Moorの使い方9ステップ⑤) (3:00)
-
スタート【エラー対応】コード生成が失敗(無限ループ)する場合の対処法(Bad state: Unexpected diagnostics: sky_engine\lib\ui\channel_buffers.dart - This requires the 'non-nullable' language feature to be enabled) (3:15)
-
スタート207:データベースのスキーマバージョンを設定しよう(Moorの使い方9ステップ⑥) (1:06)
-
スタート208:【解説】「annotation:アノテーション(@)」とは (4:43)
-
スタート209:データベースの4つの操作メソッド(クエリ)を作成しよう(Moorの使い方9ステップ⑦) (8:16)
-
スタート210:【解説】Moorにおけるデータベース4つの操作メソッド(CRUD)の解説 (12:20)
-
スタート211:データベースクラスのインスタンスを設定しよう(Moorの使い方9ステップ⑧) (3:01)
-
スタート212:[編集画面]新しい単語をデータベースに登録する処理を実装しよう(Moorの使い方9ステップ⑨) (8:58)
-
スタート【エラー対応】moor_ffi not found/Failed to load dynamic libraryというエラーが出た場合の対処法 (4:04)
-
スタート213:【解説】端末にインストールされているSQLiteデータベースの中身を見る方法(DB Browser for SQLiteの使い方) (5:05)
-
スタート214:[編集画面]トーストメッセージ(Toast)を使って登録完了メッセージを表示させよう (4:06)
-
スタート215:[編集画面]例外処理を使って単語を重複して登録しようとした際にエラーメッセージを表示させよう(Moorで重複データをチェックする方法) (5:39)
-
スタート216:[一覧画面]データベースに登録した単語データを取得する処理を実装しよう (5:17)
-
スタート217:【解説】ListViewの使い方5ステップ (4:45)
-
スタート218:[一覧画面]「ListView」を使って単語の一覧リスト部分を実装しよう (4:46)
-
スタート219:[一覧画面]「Card」と「ListTile」を使って単語の一覧リスト部分を実装しよう (9:49)
-
スタート220:[一覧画面]一覧に表示された単語を長押ししたら削除する処理を実装しよう (5:18)
-
スタート221:「enum(列挙型)」を使って編集ステータスの設定をし、編集画面のコンストラクタを修正しよう (5:27)
-
スタート222:[一覧画面]一覧に表示された単語をタップしたときに編集画面に遷移する処理を実装しよう (2:58)
-
スタート223:[編集画面]一覧画面から渡された値を引き継ごう (7:18)
-
スタート224:[編集画面]一覧画面で選択した単語を修正する処理を実装しよう (6:37)
-
スタート225:データベースにフィールド(暗記済みフラグ)を追加し変更を反映させよう (7:51)
-
スタート226:既に端末にインストールされている旧バージョンのデータベースとの統合処理を実装しよう (4:49)
-
スタート227:[編集画面]データベースのフィールド追加に伴う単語の登録・修正処理を変更しよう (3:23)
-
スタート228:テストの状態を管理するためのステータスを設定しよう(TestStatus) (3:15)
-
スタート229:[テスト画面]画面全体のレイアウトの枠組みを作ろう (5:52)
-
スタート230:[テスト画面]問題数を表示するパートを実装しよう (4:50)
-
スタート231:[テスト画面]「Stack」でWidgetを重ねて問題カード表示パートを実装しよう (5:40)
-
スタート232:[テスト画面]「Stack」でWidgetを重ねてこたえカード表示パートを実装しよう (3:35)
-
スタート233:【解説】CheckBoxListTileの使い方3ステップ (3:58)
-
スタート234:[テスト画面]「CheckBoxListTile」を使って単語を暗記済みにする場合のチェックボックスを実装しよう (5:29)
-
スタート235:【+α】CheckBoxに表示する文字をボックスの右側にしてみよう (2:51)
-
プレビュー236:[テスト画面]テストで使う単語群をデータベースから取得しよう①(暗記済みの単語を除外して取得するクエリメソッドの作成) (6:08)
-
スタート237:[テスト画面]テストで使う単語群をデータベースから取得しよう②(テスト画面からクエリメソッド呼び出し) (5:52)
-
スタート238:[テスト画面]取得した単語リストをシャッフルしよう (4:22)
-
スタート239:[テスト画面]「switch」文を使ってテストの状態を切り替える処理を実装しよう(FloatingActionButton) (6:07)
-
スタート240:[テスト画面]テスト開始前の初期状態の設定をしよう (5:57)
-
スタート241:[テスト画面]問題カードを出す処理を実装しよう (4:50)
-
スタート242:[テスト画面]こたえカードを出す処理を実装しよう (3:14)
-
スタート243:[テスト画面]暗記済フラグをデータベースに登録しよう (5:01)
-
スタート244:[テスト画面]テスト終了時にメッセージを表示させよう (6:46)
-
スタート245:[一覧画面]暗記済の単語は一覧上でチェックマークを表示させよう(ListTile.trailing/Icon) (3:47)
-
スタート246:[一覧画面]暗記済の単語を下にソートする処理を実装しよう①(クエリメソッドの作成) (5:25)
-
スタート247:[一覧画面]暗記済の単語を下にソートする処理を実装しよう②(一覧画面からクエリメソッド呼び出しとリストの更新) (2:59)
-
スタート248:<資料>次のレクチャー(AlertDialogの解説)で使うプロジェクト
-
スタート249:【解説】確認ダイアログ(AlertDialog)の使い方4ステップ (8:24)
-
スタート250:[一覧画面]単語削除時に確認ダイアログ(AlertDialog)を出す処理を実装しよう (8:03)
-
スタート251:[編集画面]単語の登録・修正時に確認ダイアログ(AlertDialog)を表示する処理を実装しよう (9:53)
-
スタート252:[テスト画面]テスト終了時の確認ダイアログを実装しよう(AlertDialog) (8:37)
-
スタート253:【+α】「Radio(ラジオボタン)」を「Switch(切り替えトグル)」に変えてみよう (5:53)
-
スタート254:【+α】ランチャーアイコンを作ってみよう(flutter_launcher_iconsパッケージ) (5:17)
-
スタート255:【+α:補足1】AndroidのランチャーアイコンをAdaptive Iconにする方法 (5:50)
-
スタート256:【+α:補足2】AndroidのランチャーアイコンをAdaptiveからLegacyに戻す方法 (1:22)
-
スタート257:【+α】Android端末に表示されるアプリのタイトルと画面の向きを設定しよう (3:00)
-
スタート258:【+α:Macのみ】iOS端末に表示されるアプリのタイトルと画面の向き設定しよう(Xcode) (2:35)
-
スタート259:【+α】Android用のスプラッシュスクリーン(ランチャースクリーン)を作ってみよう (6:53)
-
スタート260:【+α:Macのみ】iOS用のスプラッシュスクリーン(ランチャースクリーン)を作ってみよう (4:08)
-
スタート261:<資料>今回作ったアプリのプロジェクト(私だけの単語帳)
-
スタートAndroidアプリの開発者登録をしよう(Google Playデベロッパーアカウント登録) (6:34)
-
スタート支払いプロフィールを設定しよう(Google Play Console) (6:08)
-
スタートターゲットAPIレベル・アプリID・アプリのバージョン設定をしよう(Android Studio) (7:40)
-
スタート【該当者のみ】ハイフン(-)の入ったドメイン名を使う場合の注意点(「AAPT: error: attribute 'package' in tag is not a valid Android package name: ・・・'」の対処法) (4:44)
-
スタート【解説】AndroidアプリのAPIレベルとは (7:29)
-
スタート【解説】なぜbuild.gradleファイルは2つ存在するのか (3:23)
-
スタートアップロード鍵を作ってGoogle Play Consoleにアップロードするファイル(App Bundle)を作ろう(Android Studio) (8:02)
-
スタート【解説】Google Playアプリ署名(App Signing)とは (3:47)
-
スタートGoogle Play Consoleに新規アプリを追加しよう (3:23)
-
スタートアプリのアクセス権と広告に関する設定をしよう(初期設定) (3:43)
-
スタートコンテンツのレーティングを設定しよう(初期設定) (1:41)
-
スタートターゲットユーザーを設定しよう(初期設定) (3:26)
-
スタート【解説】13歳未満対象のアプリをリリースする際の注意点(新しくなったGoogle Playファミリーポリシーへの対応) (5:01)
-
スタートアプリのカテゴリを選択し、連絡先情報を登録しよう(初期設定) (1:41)
-
スタートストアの掲載情報を設定しよう(初期設定) (6:11)
-
スタート内部テストを行うためのテスターを設定しよう(アプリのリリース) (2:11)
-
スタート新しいリリースを内部テスト版でリリースしよう(アプリのリリース) (2:10)
-
スタート内部テスト版アプリをテストし「リリース前」レポートで問題を確認しよう(アプリのリリース) (2:37)
-
スタートテストが完了した内部テスト版を製品版としてリリースしよう(アプリのリリース) (2:07)
-
スタートリリースしたアプリのバージョンアップをしよう (3:47)
-
スタート【重要】2020/11/2までにAndroidアプリの「targetSdkVersion」を「29」に上げる必要あり! (3:50)
-
スタートiOSアプリの開発者登録をしよう(Apple Developer Programへの登録) (7:06)
-
スタート支払いプロフィールを設定しよう(App Store Connect) (5:42)
-
スタートバンドルIDを登録しよう(App IDs) (4:03)
-
スタートApp Store Connectで新規アプリを追加しよう (3:45)
-
スタートアップロードするプロジェクトの設定を確認しよう(Xcode) (5:15)
-
スタートApp Store Connectにアプリのファイルをアップロードしよう(XCode) (5:43)
-
スタート「App情報」を入力しよう(App Store Connect) (2:19)
-
スタート「価格および配信状況」の入力をしよう(App Store Connect) (1:34)
-
スタート「プラットフォームバージョン情報」を入力しよう(App Store Connect) (6:26)
-
スタートTestFlightでベータ版テストをしよう(App Store Connect) (6:22)
-
スタートテストが完了したベータ版を製品版として審査に提出しよう(AppReview) (3:04)
-
スタートリリースしたアプリのバージョンをアップしよう (2:35)
-
スタートiOS実機・シミュレーターでアプリが動かせない場合の対処法(error: Multiple commands produce・・)の対処法 (1:45)
-
スタートiOS実機でアプリを起動すると画面が真っ白になってしまう場合の対処法(ランチャースクリーンで止まってしまう場合含む) (1:17)
-
スタートAndroidのエミュレーターで日本語入力できない場合の対処法 (1:17)
-
スタートiOSのシミュレーターで日本語入力できない場合の対処法 (0:44)
-
スタートAndroidエミュレーター内のファイルが見れない場合の対処法(Error initializing ADB:Android Debug Bridge not found)) (1:44)
-
スタートAndroidエミュレーターで録画をする方法 (2:07)
-
スタートiOSシミュレーターで録画をする方法 (2:10)
-
スタートCould not determine the dependencies of task ':app :flutterBuildDebug'の対処法 (1:14)
-
スタートNo version of NDK matched the requested version・・・の対処法 (2:06)
-
スタートsetState() or markNeedsBuild called during buildの対処法 (1:43)
-
スタートiOSで効果音が鳴らせない場合('soundpool/soundpool-Swift.h' file not found')の対処法 (2:20)
-
スタート人の作ったプロジェクトがスムーズに開けない場合の対処法(Android framework detected.) (1:01)
-
スタート「Flutter Outline」を開いても何も表示されない(Nothing to show)場合の対処法 (0:27)
-
スタートDartのプラグインをインストールしたにも関わらず「Dart SDK is not configured」が出てしまう場合の対処法 (1:37)
-
スタートandroidフォルダにある「build.gradle」ファイルは開いた瞬間にニョロニョロが出ても問題なし! (1:57)
-
スタートPods-Runner-frameworks.sh: Permission deniedというエラーが出てiOSシミュレーター・実機でアプリが起動しない場合の対処法) (1:37)
-
スタート【Moor】moor_ffi not found/Failed to load dynamic libraryというエラーが出た場合の対処法 (4:04)
-
スタートコード生成(build_runner)したら「Failed to precompile build_runner」という謎のエラーが出て失敗する場合の対処法 (0:47)
-
スタート「Could not resolve the package 'characters' in 'package:characters/characters.dart'.」の対処法 (1:06)
-
スタート【Android】「AAPT: error: unexpected element found in 」の対処法 (3:42)
-
スタート【Macのみ】Dartのコマンドラインツールが使えない場合の対処法(Flutterのバージョンを上げたにも関わらずDartのバージョンが一緒に上がらない場合) (5:27)
-
スタート【重要】Android Studio4.0へのアップグレードはこの手順で行ってください(Flutter・Dartのプラグインのアップデートが必要です) (4:06)
-
スタートFlutterのバージョンを1.20.1にアップグレードする際の注意点(コード生成(build_runner)がうまくいかなくなる場合の対処法) (3:15)
-
スタートFlutterのバージョンを1.12に上げたら必要になるかもしれない統合処理(The plugin "・・" requires your app to be migrated to the Android embedding v2の対処法) (4:55)
-
スタートiOS14の実機でデバッグモードで動かしたFlutterアプリをiOS端末上のアプリアイコンをクリックして再起動できない場合の対処法 (2:51)
-
スタートAndroid Studioを4.1にアップグレードしたら「Flutter plugin not installed」というエラーが出た場合の対処法 (1:29)
-
スタートflutter doctorしてもAndroid Studio4.1を認識してくれない場合の対処法 (1:28)
-
スタートRaisedButtonとFlatButtonが非推奨に(ElevatedButtonとTextButtonに) (7:47)
-
スタートListのコンストラクタが非推奨に(List() => []に) (1:35)
-
スタート本編課題アプリのFlutter2.0への移行対応(①:はじめてのアプリ) (2:02)
-
スタート本編課題アプリのFlutter2.0への移行対応(②:ツッコミマシーン) (5:59)
-
スタート本編課題アプリのFlutter2.0への移行対応(③:計算脳トレ) (3:43)
-
スタート本編課題アプリのFlutter2.0への移行対応(④:私だけの単語帳) (4:14)
今すぐはじめよう!
これ一本でiOS・Androidアプリが”いっぺんに”作れる
今最も注目のアプリ開発ツール「Flutter(フラッター)」
「Flutter(フラッター)」とは、
Googleが2018年末に正式版を発表した出来たてホヤホヤの「マルチプラットフォーム」アプリ開発ツール
です。
スマホと言えば「iOS(iPhone)」と「Android」が世界シェアのほぼ全てを牛耳る2大巨頭体制。
ところが、そのシェアは国によってバラバラ。
世界全体で見たらAndroidですが、日本では真逆なんです。
しかも、お互いそれなりのシェアを持ってますから、どちらかだけ対応するというわけにはいきません。
しかし、実は同じスマホアプリでもiOSアプリとAndroidアプリとは全くの別物。
iOSアプリは
・XCodeという道具と
・iOS SDKという開発キットを使って
・Swiftというプログラミング言語で作るのに対し、
Androidアプリは
・Android Studioという道具と
・Android SDkという開発キットを使って
・Kotlin(あるいはJava)というプログラミング言語で作る。
つまり、iOSアプリとAndroidアプリとでは作る工程が全く違うんです!
それは、iOSとAndroidではプラットフォーム(≒ OS:オペレーティングシステム)が違うからなんですね。
だから、同じ見た目のスマホアプリでも、またゼロから作る必要がある。
使う方はいいけれど、作る方は時間もコストもかかって超大変!
そんな困った状況を解消してくれるスグレモノの開発ツールが「Flutter(フラッター)」なんです。
「Flutter」を使えば、これ一本でiOSアプリもAndroidアプリも全く同じ工程”いっぺんに”作れちゃうんです。
しかも、「Flutter」はこれ一本で、
・スマホアプリのみならず、
・デスクトップアプリや
・Webアプリなど
色んなプラットフォーム(≒ OS)に対応するアプリが”いっぺんに”作れちゃうんです。
これが「マルチプラットフォーム」の意味であり、「Flutter」の凄いところなんです。
だから、「Flutter」は正式版が登場して1年も経っていないにも関わらず、今最も注目を集めるアプリ開発ツールになったんですね。
【参考】GoogleのFlutterはmacOSやWindowsも含む真のマルチプラットフォーム対応へ(TechCrunch日本語版 2019/5/9)
https://jp.techcrunch.com/2019/05/09/2019-05-07-googles-flutter-framework-spreads-its-wings-and-goes-multi-platform/
GoogleのFlutterは、クロスプラットフォーム開発に対応した UIツールキット。登場してからまだ2年しか経っていないが、あっという間に多くのデベロッパーがこぞって採用するフレームワークとなった。ただし、これまでは「クロスプラットフォーム」の意味は、AndroidとiOSにのみ限定されていた。昨年末になってGoogleは、Flutterをモバイル用だけでなくウェブにも拡張すると発表した。そして米国時間5月7日に開催されたGoogle I/Oで、その言葉通り、ウェブ用Flutterのテクニカルプレビュー版を発表した。
さらにGoogleは、Flutterを利用して、macOS、Windows、Linuxをターゲットにした開発がもうすぐ可能になることも明らかにした。すでにGoogle自身も、Flutterを利用してGoogle Home Hub(Nest Hubに改名)のユーザー体験を設計し始めているという。それ以外に、さまざまな組み込みデバイス用に活用することも視野に入れている。
「Flutter(フラッター)」は、まさにこれからスマホアプリ開発、引いてはプログラミングを始めようという方にうってつけのアプリ開発ツール。
これから大いなる将来性が見込まれるこの「Flutter」のスキルを、あなたもいち早く習得してみませんか。
今すぐはじめよう!
経験ゼロでも挫折せずにスマホアプリ(iOS・Android)が作れるようになる方法
(「みんプロ式」5つの秘訣)
「みんプロ式」は「経験が全くない方あるいは挫折してしまった経験のある方専門のプログラミング講座」です。
それはわかったんだけど、
じゃあ、
◆ 「みんプロ式」は他のスマホアプリ開発講座と何が違うんや?!
◆ なんで経験ゼロの人でも3ヶ月でスマホアプリ(iOS・Android)が作れるようになると言い切れるんや?!
と、ちょっと疑問に思いますよね。
実はこれ、ぼく自身が苦い挫折を経験してきたからなんです。その挫折経験を踏まえて
「みんプロ式」では、初心者の方が陥りやすい挫折パターンを徹底的に回避する仕組みを盛り込んでいるから
なんですね。
秘訣①:ちょっとしたスキマ時間でも動画で学習できるスモールステップ型カリキュラム
(1日たったの3レクチャーで約3ヶ月で修了できるカリキュラム)
プログラミングを全くやったことのない人が、いきなりスマホアプリを作るというのは、山登りをしたことのない人がいきなり富士山に登るようなものです。
全くの初心者が、いきなり傾斜の急な斜面を最短距離で登るのは、はっきり言って無謀です。
でも、急斜面の最短距離じゃなくて、なだらかな道をゆっくり登れば、山登りをやったことがない人でも登ることができますよね。
プログラミングの学習も同じ。
なだらかな道を「スモールステップ」で登っていけば、誰でもスマホアプリが作れるようになるんです。
プログラミングというのは、スポーツとかピアノと一緒なので、なんだかんだ上達するための道というのは、
ピアノの場合はいくら楽譜読めても仕方がないから弾きまくらないと上達しない
というのと一緒で、
プログラミングだって、文法がわかっても、実際にコード書けないと全然意味がないわけだから、とにかくコード書きまくるしかない
というのが多分こたえなんです。
ですから、
挫折を生まないためには、少しずつでもいいから毎日続けられる仕組みがまず必要なんです。
「みんプロ式」のカリキュラム(動画テキスト)は、実に300ものスモールステップに分解されていますが、そのワケがこれなんです。
1ステップあたり何とたったの5分。
これが何10分もあると学習時間を作るのが難しくなりますけど、5分だったらちょっとしたスキマ時間でも学習が進められますよね。
毎日少しずつでもいいから継続できる「スモールステップ型」カリキュラムこそが、「みんプロ式」が挫折を生まない仕掛け。
1日たったの3レクチャーで、約3ヶ月後には全くの初心者の方でもスマホアプリ開発の基礎が身につくカリキュラムとなっているのです。
カリキュラム
-
プレビュー007:オープニング(初心者でない方はこのセクションは飛ばして頂いて構いません) (1:15)
-
プレビュー008:スマホとは(歴史・保有台数・市場規模) (5:04)
-
プレビュー009:スマホ界の2大巨塔・AndroidとiOS[iphone]との違いとは (3:17)
-
スタート010:アプリとは(ハードウェアとソフトウェア) (1:06)
-
スタート011:プログラミングとは (2:12)
-
スタート012:プログラミング処理の基本<文・関数(メソッド)・クラス> (6:11)
-
プレビュー013:プログラミングの3ステップ(ブロック作りと同じ) (2:39)
-
スタート014:プログラムをアプリになるまでの仕組み(コンパイルとビルド) (4:27)
-
プレビュー015:オープニング(Flutterアプリを作るために必要な道具とは) (3:47)
-
スタート016:【Windows】Flutterアプリの開発ツール(SDK)の設定をしよう (7:50)
-
スタート017:【Windows】Android Studioのダウンロードとインストールをしよう (2:45)
-
スタート018:【Windows】Androidアプリを実機で動かすための設定をしよう(Android Studio) (3:10)
-
スタート019:【Windows】Androidアプリをエミュレーターで動かすための設定をしよう(Android Studio) (4:08)
-
スタート020:【Mac】Flutterアプリの開発ツール(SDK)の設定をしよう (8:47)
-
スタート021:【Mac】Android Studioのダウンロードとインストールをしよう (3:13)
-
スタート022:【Mac】Androidアプリを実機で動かすための設定をしよう(Android Studio) (2:40)
-
スタート023:【Mac】Androidアプリをエミュレーターで動かすための設定をしよう(Android Studio) (4:06)
-
スタート024:【Mac】Xcodeのダウンロードとインストールをしよう (2:51)
-
スタート025:【Mac】iOSアプリを実機で動かすための設定をしよう(Xcode) (8:36)
-
スタート026:【Mac】iOSアプリをシミュレーターで動かすための設定をしよう(Xcode) (2:27)
-
スタート027:【Windows・Mac共通】Android Studioの初期設定をしよう(Flutter/Dartプラグインのインストール等) (7:55)
-
プレビュー028:オープニング(今回作るアプリの紹介[はじめてのアプリ]) (1:56)
-
スタート029:Android Studioで新しいFlutterプロジェクトを作ってみよう (7:13)
-
スタート030:【初心者向け解説】プロジェクトをWindowsエクスプローラーあるいはMacのFinderで見る方法 (1:38)
-
スタート031:既に作ったプロジェクトを開いてみよう(作りかけのプロジェクトも含む) (1:51)
-
プレビュー032:【初心者向け解説】プログラミングの天才に学ぶAndroid Studioに行く前にすべきこと(スマホアプリを作るための3ステップ) (3:41)
-
スタート033:<資料>設計図(はじめてのアプリ)
-
プレビュー034:今回作るアプリの設計図を紙に書こう(はじめてのアプリ) (3:00)
-
スタート035:Flutterプロジェクトのフォルダ構造を知ろう(最低限抑えておくべき3兄弟) (11:21)
-
スタート036:<資料>今回のアプリで使うリソース
-
スタート037:アプリで使う画像をプロジェクトに取り込もう(小道具のプロジェクトへの取り込み方3ステップ) (6:38)
-
プレビュー038:Flutterはどういう順番でコード書いたらええねん6ステップ (8:15)
-
スタート039:アプリ全体に共通する部分(アプリのルート部分)を実装しよう (6:20)
-
スタート040:【初心者向け解説】Dartプログラミングはたったの2ステップしかない! (4:59)
-
スタート041:【初心者向け解説】クラスのインスタンス化(初期化)とは (8:07)
-
スタート042:【初心者向け解説】Dartにおけるメソッド(関数)の作り方 (8:53)
-
スタート043:【解説】Widget(ウィジェット)とは (13:35)
-
スタート044:「StatefulWidget」を使ってホーム画面の外枠を実装をしよう (6:22)
-
スタート045:【初心者向け解説】ファイル・クラス・関数(メソッド)等の名前付けの規則 (4:00)
-
スタート046:【初心者向け解説】プロジェクト内のファイル・フォルダ名の変更の仕方 (1:16)
-
スタート047:「Scaffold」を使ってホーム画面をマテリアルデザイン仕様にしてアプリバーを設定しよう (9:05)
-
スタート048:【解説】Material Design(マテリアルデザイン)とは(MaterialAppの謎解き) (13:27)
-
スタート049:【解説】Widgetの並べ方超基本3パターン (2:53)
-
スタート050:「Column」を使ってWidgetを縦方向に並べよう (3:45)
-
スタート051:「Text」を使って文字を表示させよう (5:32)
-
スタート052:「Center」を使ってWidgetを中央寄せしよう (4:04)
-
スタート053:「TextField」を使って文字入力欄を設置しよう (5:16)
-
スタート054:「Image.asset」を使ってプロジェクトに取り込んだ画像を表示させよう (2:25)
-
スタート055:「ElevatedButton」を使ってボタンを表示させよう (5:11)
-
スタート056:「Container」を使って画面全体に余白(padding)を作ろう (5:05)
-
スタート057:【解説】Flutter Outlineの基本的な使い方 (3:11)
-
スタート058:「SizedBox」を使ってボタンを横幅いっぱいに拡げよう (4:10)
-
スタート059:「Expanded」を使って画像の縦幅を残り枠いっぱいに拡げよう (3:30)
-
スタート060:ボタンを押したら文字を表示させる処理を実装しよう(変数の作り方) (6:44)
-
スタート061:入力欄(TextField)に入れた文字を取得して表示させよう (3:39)
-
スタート062:ボタンを押したら画像を表示させる処理を実装しよう (1:41)
-
スタート063:【解説】Dartにおけるスコープ(変数・関数にアクセスできる[参照できる・使える]範囲) (7:17)
-
スタート064:「setState」メソッドを使って設定した文字・画像を画面に表示させよう(アプリの状態変化を画面に反映させる) (4:59)
-
スタート065:【初心者向け解説】プログラミングにおける「=」とは(代入) (4:39)
-
スタート066:アプリを動かす前にプロジェクトを一旦きれいにしよう(flutter clean) (0:54)
-
スタート067:ソースコードのフォーマットを整えよう(Reformat File) (1:23)
-
スタート068:【Windows・Mac共通】作ったアプリをAndroidエミュレーターで動かしてみよう (2:45)
-
スタート069:【Windows・Mac共通】作ったアプリをAndroid実機で動かしてみよう (2:23)
-
スタート070:【Macのみ】作ったアプリをiOSシミュレーターで動かしてみよう (1:54)
-
スタート071:【Macのみ】作ったアプリをiOS実機で動かしてみよう(素晴らしきマルチプラットフォームの世界) (3:09)
-
スタート072-1:【初心者向け解説】再生ボタン[Run]とゲジゲジボタン[Debug]の違い(実は両方ともFlutterではデバッグ[Debug]モード) (4:02)
-
スタート072-2:【初心者向け解説】Flutterアプリを動かす3つのモード(Debugモード / Releaseモード / Profileモード) (4:15)
-
スタート073:【+α】インターネット上の画像をアプリで表示させてみよう(Image.network) (2:24)
-
スタート074:【+α】デバッグバナーを非表示にしよう (1:32)
-
スタート075:【+α】アプリ全体のテーマをダークモードに変更しよう (2:14)
-
スタート076:【+α】「CupertinoApp」を使ってアプリの見た目をiOS仕様に変えよう (8:07)
-
スタート077:<資料>今回作ったアプリのプロジェクト(はじめてのアプリ)
-
プレビュー078:オープニング(今回作るアプリの紹介[ツッコミマシーン]) (1:40)
-
スタート079:<資料>今回のアプリの設計図(ツッコミマシーン)
-
プレビュー080:今回作るアプリの設計図を紙に書こう(ツッコミマシーン) (2:45)
-
スタート081:Android Studioで今回作るアプリのプロジェクトを作ろう (3:31)
-
スタート082:<資料>今回のアプリで使うリソース
-
スタート083:アプリで使う効果音ファイルをプロジェクトに取り込もう (4:45)
-
スタート084:アプリ全体に共通する部分(アプリのルート部分)を実装しよう(main.dart) (5:52)
-
スタート085:【解説】runApp関数とは (3:33)
-
スタート086:【初心者向け解説】クラスの継承(extends)とメソッドのオーバーライド(override)とは (11:13)
-
スタート087:【初心者向け解説】「ご先祖様」に「子孫」を代入するのはOK(プログラミングにおける「=」とは[完全版]) (2:42)
-
プレビュー088:「StatefulWidget」を使ってホーム画面の外枠を実装をしよう(home_screen.dart) (3:45)
-
スタート089:「Scaffold」を使ってホーム画面をマテリアルデザイン仕様にしてアプリバー(AppBar)を設定しよう (4:15)
-
スタート090:「Column」と「Row」を使ってボタンを3行2列の碁盤の目に並べよう (7:57)
-
スタート091:「Expanded」と「flex」を使って碁盤の目を画面いっぱいに均等に並べよう (5:39)
-
スタート092:「CrossAxisAlignment」を使ってボタンの大きさを枠いっぱいに拡げよう (5:56)
-
スタート093:「Container.padding」を使って画面全体と各枠内のボタンに余白(padding)を作ろう (5:11)
-
スタート094:【初心者向け解説】「List(配列)」とジェネリクス(総称型)とは (11:44)
-
スタート095:「List」を使って6つのボタンに表示させる文字をセットしよう (7:50)
-
スタート096:【初心者向け解説】メモリとは(音のメモリ再生(ダウンロード再生)とストリーミング再生の違い) (8:43)
-
スタート097:【解説】Flutterアプリで効果音を出す方法5ステップ(soundPoolパッケージの使い方) (5:38)
-
スタート098:soundPoolパッケージをプロジェクトに追加しよう(パッケージを使うための2ステップ) (6:08)
-
スタート099:【解説】pubspec.yamlファイルとは (6:01)
-
スタート100:【解説】StatefulWidgetはどうやって状態管理をしているのか (8:23)
-
スタート101:SoundPoolクラスの初期化と破棄の実装をしよう (6:31)
-
スタート102:効果音のサウンドIDをセットしよう (4:44)
-
スタート103:【初心者向け解説】ビルト・イン型クラスとは(Dartにおける2種類のクラス) (11:10)
-
スタート104:【解説】非同期処理(async-await)とは (8:13)
-
スタート105:【解説】「Future」とは (8:27)
-
スタート106:【解説】Dartでの非同期処理の使い方3原則 (10:42)
-
スタート107:プロジェクトに取り込んだ効果音ファイルをメモリにロードしよう(rootBundle#load) (9:53)
-
スタート108:【解説】プロジェクトに取り込んだデータ(assets)のロード方法(rootBundleとは) (11:32)
-
スタート109:ボタンを押したら効果音を鳴らす処理を実装しよう (2:38)
-
スタート110:initStateで非同期処理ができるようにしてアプリを動かしてみよう (8:20)
-
スタート111:【初心者向け解説】「空っぽ(null)」と「空白("")」の違いとは (2:32)
-
プレビュー112:【初心者向け解説】エラーはどこでわかるのか(プログラミングにおける3種類のエラー) (6:28)
-
スタート113:【解説】StatefulWidgetはなぜStateオブジェクトと別クラスで分離されているのか(Widgetの本当の正体とは) (12:28)
-
スタート114:【解説】Flutterとネイティブアプリ開発(Android/iOS)の状態管理方法比較 (6:35)
-
スタート115:【+α】非同期処理に例外処理を実装してみよう (5:38)
-
スタート116:【+α】RaisedButtonをカスタマイズしてみよう (11:08)
-
スタート<資料>今回作ったアプリのプロジェクト(ツッコミマシーン)
-
プレビュー118:オープニング(今回作るアプリの紹介[計算脳トレ]) (5:43)
-
スタート119:<資料>今回の作るアプリの設計図(計算脳トレ)
-
プレビュー120:今回作るアプリの設計図を紙に書こう(計算脳トレ) (4:48)
-
スタート121:Android Studioで今回作るアプリのプロジェクトを作ろう (2:31)
-
スタート122:<資料>今回のアプリで使うリソース
-
スタート123:アプリで使うリソース(画像・音)をプロジェクトに取り込もう (3:38)
-
スタート124:アプリ全体に共通する部分(アプリのルート部分)を実装しよう(main.dart) (4:38)
-
スタート125:[ホーム画面]外枠を実装をしよう(home_screen.dart) (3:45)
-
スタート126:[ホーム画面]「SafeArea」を使ってアプリバー(AppBar)無しのレイアウトに変えよう (3:15)
-
スタート127:[ホーム画面]「Column」を使ってWidgetを縦方向に並べよう (4:22)
-
スタート128:[ホーム画面]「Expanded」と「Container」を使ってボタンを画面最下部中央に設置しよう (5:35)
-
スタート129:[ホーム画面]「ElevatedButton.icon」を使ってボタンにアイコンをつけて見た目をカスタマイズしよう (6:30)
-
スタート130:【初心者向け解説】マテリアルアイコンとは (4:08)
-
スタート131:【解説】Flutterアプリにおける画面・文字の大きさの単位とは(物理ピクセルと論理ピクセル) (13:13)
-
スタート132:【+α】「MediaQuery.of」メソッドを使って画面のサイズ(論理ピクセル)を取得しよう (2:30)
-
プレビュー133:【解説】「DropdownButton」の使い方3ステップ (2:07)
-
スタート134:[ホーム画面]「SizedBox」を使ってWidget間に空白を設定しよう (4:18)
-
スタート135:[ホーム画面]「DropdownMenuItem」を使って「DropdownButton」に表示させる選択肢をセットしよう(items属性) (6:51)
-
スタート136:【+α】「Cascade Notation(..)」を使ってコードをシンプルにしよう (3:17)
-
スタート137:[ホーム画面]「DropdownButton」で選択されたアイテムをセットしよう(value属性) (5:26)
-
スタート138:[ホーム画面]「DropdownButton」でアイテムが選択された時の処理を実装しよう(onChanged属性) (2:23)
-
スタート139:【解説】onPressed/onChanged属性の中身はどうなっているのか (8:03)
-
スタート140:【解説】Flutterにおける画面遷移の方法(NavigatorとMaterialPageRoute) (8:27)
-
スタート141:[ホーム画面]スタートボタンをクリックしてテスト画面を開く処理を実装しよう (7:18)
-
スタート142:[ホーム画面・テスト画面]名前付きパラメータ(Named Parameter)を使って選択した問題数をホーム画面からテスト画面に渡そう (7:25)
-
スタート143:【初心者向け解説】Flutterにおける2つの定数(「const」と「final」) (6:22)
-
スタート144:「const」を使って描画パフォーマンスを向上させよう(Flutter Performanceの使い方) (10:44)
-
スタート145:【初心者向け解説】どこからでもインスタンスを経由せずに直接使えるメンバを作る2つの方法(「top-level」と「static」) (9:53)
-
スタート146:[テスト画面]画面全体のレイアウトの枠組みを作ろう(SafeArea/Container/Column) (6:37)
-
スタート147:[テスト画面]「Table」と「Center」を使ってスコア表示部分を実装しよう (11:06)
-
プレビュー148:[テスト画面]問題表示部分を実装しよう(Expandedとflex/Container) (12:17)
-
スタート149:[テスト画面]こたえ合わせボタン部分を実装しよう(RaisedButton/SizedBox/Container) (3:09)
-
スタート150:[テスト画面]もどるボタン部分を実装しよう(RaisedButton/SizedBox/Container) (2:44)
-
スタート151:[テスト画面]電卓ボタン部分を実装しよう(Table/Container) (7:56)
-
スタート152:[テスト画面]「Stack」を使って○・☓画像とテスト終了テキスト部分のWidgetを積み重ねよう (7:39)
-
スタート153:【初心者向け解説】条件分岐の「if文」と比較演算子(プログラミングは3つの流れ) (8:01)
-
スタート154:[テスト画面]テスト開始前の初期設定をしよう(①:ホーム画面で選択した問題数の引き継ぎ) (6:01)
-
スタート155:[テスト画面]テスト開始前の初期設定をしよう(②:効果音の準備) (11:23)
-
スタート156:[テスト画面]出題処理を実装しよう(①:出題時の初期設定) (6:16)
-
スタート157:[テスト画面]出題処理を実装しよう(②:乱数(Random)を使って出題) (6:45)
-
スタート158:[テスト画面]電卓ボタンを押す処理を実装しよう (11:20)
-
スタート159:[テスト画面]こたえ合わせ処理を実装しよう(①:初期設定) (4:52)
-
プレビュー160:【初心者向け解説】三項条件演算子とは(?/:) (3:27)
-
スタート161:[テスト画面]こたえ合わせ処理を実装しよう(②:正解判定) (9:09)
-
スタート162:[テスト画面]こたえ合わせ処理を実装しよう(③:正答率の計算) (3:36)
-
スタート163:[テスト画面]こたえ合わせ処理を実装しよう(④:終了判定) (2:28)
-
スタート164:[テスト画面]こたえ合わせ処理を実装しよう(⑤:「Timer」を使って1秒後に次の問題を出題) (2:53)
-
スタート165:<資料>次のレクチャー(タイマー処理の解説)で使うプロジェクト
-
スタート166:【解説】タイマー処理(Timer)とは (10:44)
-
スタート167:[テスト画面]もどるボタンを押したらホーム画面に戻る処理を実装しよう(Navigator.popメソッド) (6:41)
-
スタート168:<資料>今回作ったアプリのプロジェクト(計算脳トレ)
-
プレビュー169:オープニング(今回作るアプリの紹介[私だけの単語帳]) (6:52)
-
スタート170:<資料>今回の作るアプリの設計図(私だけの単語帳)
-
プレビュー171:今回作るアプリの設計図を紙に書こう(私だけの単語帳) (8:07)
-
スタート172:Android Studioで今回作るアプリのプロジェクトを作ろう (2:39)
-
スタート173:<資料>今回の作るアプリのリソース
-
スタート174:アプリで使うリソース(画像)をプロジェクトに取り込もう (4:16)
-
スタート175:アプリ全体に共通する部分(アプリのルート部分)を実装しよう (3:17)
-
スタート176:[ホーム画面]外枠の実装をしよう(アプリバー無しのマテリアルデザイン仕様) (2:26)
-
スタート177:[ホーム画面]画面全体のレイアウトの枠組みを作ろう (5:03)
-
スタート178:カスタムフォントの設定をしよう(カスタムフォントの使い方4ステップ) (8:37)
-
スタート179:「Divider」を使って横線を引こう (3:55)
-
スタート180:「VoidCallback」を使ってボタンをカスタムウィジェットで作ろう (12:02)
-
スタート181:<資料>次のレクチャー(VoidCallbackの解説)で使うプロジェクト
-
スタート182:【解説】「VoidCallback」とは何か (6:12)
-
スタート183:【解説】ラジオボタン(RadioListTile)の使い方4ステップ (6:31)
-
スタート184:[ホーム画面]ラジオボタンの表示部分を実装しよう(title属性) (3:13)
-
スタート185:[ホーム画面]ラジオボタンにセットする値を設定しよう(value/groupValue属性) (2:42)
-
スタート186:[ホーム画面]ラジオボタンが選択されたときの処理を実装しよう(onChanged属性) (5:33)
-
スタート187:[ホーム画面]単語一覧画面に遷移する処理を実装しよう (4:41)
-
スタート188:[ホーム画面]テスト画面に遷移する処理を実装しよう (4:45)
-
スタート189:【解説】「BuildContext」とは (15:01)
-
スタート190:「AppBar」を使えば前の画面に戻る処理を実装する必要がない! (5:15)
-
スタート191:[一覧画面]「FloatingActionButton」を使って編集画面に遷移する処理を実装しよう (10:44)
-
スタート192:[編集画面]問題入力部分を実装しよう (6:32)
-
スタート193:[編集画面]こたえ入力部分を実装しよう (1:46)
-
プレビュー194:[編集画面]「SingleChildScrollView」を使ってコンテンツが画面からはみ出さないようにしよう (3:09)
-
スタート195:[編集画面]「WillPopScope」を使って一覧画面に戻る処理を実装しよう (6:49)
-
スタート196:【初心者向け解説】データベース(Database:DB)とは (5:53)
-
プレビュー197:【解説】Flutter/Dartで使えるデータベースライブラリ「Moor」とは (6:07)
-
スタート198:【解説】データベースライブラリ「Moor」の使い方9ステップ (12:56)
-
スタート199:Moorパッケージをプロジェクトに追加しよう(Moorの使い方9ステップ①) (2:59)
-
スタート200:コード生成用ファイルとテーブルクラスの設定をしよう(Moorの使い方9ステップ②③) (6:11)
-
スタート201:【解説】SQLiteで使えるデータの型とテーブルクラスのコードの解説 (6:13)
-
スタート202:【初心者向け解説】「Set」とは (3:25)
-
スタート203:【初心者向け解説】「get」とは (5:12)
-
スタート204:データベースクラスの設定をしよう(Moorの使い方9ステップ④) (5:28)
-
スタート205:【解説】Dartにおける7つのコンストラクタ(「:」の謎解き) (10:53)
-
スタート206:flutterコマンドを使ってMoor用のコードを生成しよう(Moorの使い方9ステップ⑤) (3:00)
-
スタート【エラー対応】コード生成が失敗(無限ループ)する場合の対処法(Bad state: Unexpected diagnostics: sky_engine\lib\ui\channel_buffers.dart - This requires the 'non-nullable' language feature to be enabled) (3:15)
-
スタート207:データベースのスキーマバージョンを設定しよう(Moorの使い方9ステップ⑥) (1:06)
-
スタート208:【解説】「annotation:アノテーション(@)」とは (4:43)
-
スタート209:データベースの4つの操作メソッド(クエリ)を作成しよう(Moorの使い方9ステップ⑦) (8:16)
-
スタート210:【解説】Moorにおけるデータベース4つの操作メソッド(CRUD)の解説 (12:20)
-
スタート211:データベースクラスのインスタンスを設定しよう(Moorの使い方9ステップ⑧) (3:01)
-
スタート212:[編集画面]新しい単語をデータベースに登録する処理を実装しよう(Moorの使い方9ステップ⑨) (8:58)
-
スタート【エラー対応】moor_ffi not found/Failed to load dynamic libraryというエラーが出た場合の対処法 (4:04)
-
スタート213:【解説】端末にインストールされているSQLiteデータベースの中身を見る方法(DB Browser for SQLiteの使い方) (5:05)
-
スタート214:[編集画面]トーストメッセージ(Toast)を使って登録完了メッセージを表示させよう (4:06)
-
スタート215:[編集画面]例外処理を使って単語を重複して登録しようとした際にエラーメッセージを表示させよう(Moorで重複データをチェックする方法) (5:39)
-
スタート216:[一覧画面]データベースに登録した単語データを取得する処理を実装しよう (5:17)
-
スタート217:【解説】ListViewの使い方5ステップ (4:45)
-
スタート218:[一覧画面]「ListView」を使って単語の一覧リスト部分を実装しよう (4:46)
-
スタート219:[一覧画面]「Card」と「ListTile」を使って単語の一覧リスト部分を実装しよう (9:49)
-
スタート220:[一覧画面]一覧に表示された単語を長押ししたら削除する処理を実装しよう (5:18)
-
スタート221:「enum(列挙型)」を使って編集ステータスの設定をし、編集画面のコンストラクタを修正しよう (5:27)
-
スタート222:[一覧画面]一覧に表示された単語をタップしたときに編集画面に遷移する処理を実装しよう (2:58)
-
スタート223:[編集画面]一覧画面から渡された値を引き継ごう (7:18)
-
スタート224:[編集画面]一覧画面で選択した単語を修正する処理を実装しよう (6:37)
-
スタート225:データベースにフィールド(暗記済みフラグ)を追加し変更を反映させよう (7:51)
-
スタート226:既に端末にインストールされている旧バージョンのデータベースとの統合処理を実装しよう (4:49)
-
スタート227:[編集画面]データベースのフィールド追加に伴う単語の登録・修正処理を変更しよう (3:23)
-
スタート228:テストの状態を管理するためのステータスを設定しよう(TestStatus) (3:15)
-
スタート229:[テスト画面]画面全体のレイアウトの枠組みを作ろう (5:52)
-
スタート230:[テスト画面]問題数を表示するパートを実装しよう (4:50)
-
スタート231:[テスト画面]「Stack」でWidgetを重ねて問題カード表示パートを実装しよう (5:40)
-
スタート232:[テスト画面]「Stack」でWidgetを重ねてこたえカード表示パートを実装しよう (3:35)
-
スタート233:【解説】CheckBoxListTileの使い方3ステップ (3:58)
-
スタート234:[テスト画面]「CheckBoxListTile」を使って単語を暗記済みにする場合のチェックボックスを実装しよう (5:29)
-
スタート235:【+α】CheckBoxに表示する文字をボックスの右側にしてみよう (2:51)
-
プレビュー236:[テスト画面]テストで使う単語群をデータベースから取得しよう①(暗記済みの単語を除外して取得するクエリメソッドの作成) (6:08)
-
スタート237:[テスト画面]テストで使う単語群をデータベースから取得しよう②(テスト画面からクエリメソッド呼び出し) (5:52)
-
スタート238:[テスト画面]取得した単語リストをシャッフルしよう (4:22)
-
スタート239:[テスト画面]「switch」文を使ってテストの状態を切り替える処理を実装しよう(FloatingActionButton) (6:07)
-
スタート240:[テスト画面]テスト開始前の初期状態の設定をしよう (5:57)
-
スタート241:[テスト画面]問題カードを出す処理を実装しよう (4:50)
-
スタート242:[テスト画面]こたえカードを出す処理を実装しよう (3:14)
-
スタート243:[テスト画面]暗記済フラグをデータベースに登録しよう (5:01)
-
スタート244:[テスト画面]テスト終了時にメッセージを表示させよう (6:46)
-
スタート245:[一覧画面]暗記済の単語は一覧上でチェックマークを表示させよう(ListTile.trailing/Icon) (3:47)
-
スタート246:[一覧画面]暗記済の単語を下にソートする処理を実装しよう①(クエリメソッドの作成) (5:25)
-
スタート247:[一覧画面]暗記済の単語を下にソートする処理を実装しよう②(一覧画面からクエリメソッド呼び出しとリストの更新) (2:59)
-
スタート248:<資料>次のレクチャー(AlertDialogの解説)で使うプロジェクト
-
スタート249:【解説】確認ダイアログ(AlertDialog)の使い方4ステップ (8:24)
-
スタート250:[一覧画面]単語削除時に確認ダイアログ(AlertDialog)を出す処理を実装しよう (8:03)
-
スタート251:[編集画面]単語の登録・修正時に確認ダイアログ(AlertDialog)を表示する処理を実装しよう (9:53)
-
スタート252:[テスト画面]テスト終了時の確認ダイアログを実装しよう(AlertDialog) (8:37)
-
スタート253:【+α】「Radio(ラジオボタン)」を「Switch(切り替えトグル)」に変えてみよう (5:53)
-
スタート254:【+α】ランチャーアイコンを作ってみよう(flutter_launcher_iconsパッケージ) (5:17)
-
スタート255:【+α:補足1】AndroidのランチャーアイコンをAdaptive Iconにする方法 (5:50)
-
スタート256:【+α:補足2】AndroidのランチャーアイコンをAdaptiveからLegacyに戻す方法 (1:22)
-
スタート257:【+α】Android端末に表示されるアプリのタイトルと画面の向きを設定しよう (3:00)
-
スタート258:【+α:Macのみ】iOS端末に表示されるアプリのタイトルと画面の向き設定しよう(Xcode) (2:35)
-
スタート259:【+α】Android用のスプラッシュスクリーン(ランチャースクリーン)を作ってみよう (6:53)
-
スタート260:【+α:Macのみ】iOS用のスプラッシュスクリーン(ランチャースクリーン)を作ってみよう (4:08)
-
スタート261:<資料>今回作ったアプリのプロジェクト(私だけの単語帳)
-
スタートAndroidアプリの開発者登録をしよう(Google Playデベロッパーアカウント登録) (6:34)
-
スタート支払いプロフィールを設定しよう(Google Play Console) (6:08)
-
スタートターゲットAPIレベル・アプリID・アプリのバージョン設定をしよう(Android Studio) (7:40)
-
スタート【該当者のみ】ハイフン(-)の入ったドメイン名を使う場合の注意点(「AAPT: error: attribute 'package' in tag is not a valid Android package name: ・・・'」の対処法) (4:44)
-
スタート【解説】AndroidアプリのAPIレベルとは (7:29)
-
スタート【解説】なぜbuild.gradleファイルは2つ存在するのか (3:23)
-
スタートアップロード鍵を作ってGoogle Play Consoleにアップロードするファイル(App Bundle)を作ろう(Android Studio) (8:02)
-
スタート【解説】Google Playアプリ署名(App Signing)とは (3:47)
-
スタートGoogle Play Consoleに新規アプリを追加しよう (3:23)
-
スタートアプリのアクセス権と広告に関する設定をしよう(初期設定) (3:43)
-
スタートコンテンツのレーティングを設定しよう(初期設定) (1:41)
-
スタートターゲットユーザーを設定しよう(初期設定) (3:26)
-
スタート【解説】13歳未満対象のアプリをリリースする際の注意点(新しくなったGoogle Playファミリーポリシーへの対応) (5:01)
-
スタートアプリのカテゴリを選択し、連絡先情報を登録しよう(初期設定) (1:41)
-
スタートストアの掲載情報を設定しよう(初期設定) (6:11)
-
スタート内部テストを行うためのテスターを設定しよう(アプリのリリース) (2:11)
-
スタート新しいリリースを内部テスト版でリリースしよう(アプリのリリース) (2:10)
-
スタート内部テスト版アプリをテストし「リリース前」レポートで問題を確認しよう(アプリのリリース) (2:37)
-
スタートテストが完了した内部テスト版を製品版としてリリースしよう(アプリのリリース) (2:07)
-
スタートリリースしたアプリのバージョンアップをしよう (3:47)
-
スタート【重要】2020/11/2までにAndroidアプリの「targetSdkVersion」を「29」に上げる必要あり! (3:50)
-
スタートiOSアプリの開発者登録をしよう(Apple Developer Programへの登録) (7:06)
-
スタート支払いプロフィールを設定しよう(App Store Connect) (5:42)
-
スタートバンドルIDを登録しよう(App IDs) (4:03)
-
スタートApp Store Connectで新規アプリを追加しよう (3:45)
-
スタートアップロードするプロジェクトの設定を確認しよう(Xcode) (5:15)
-
スタートApp Store Connectにアプリのファイルをアップロードしよう(XCode) (5:43)
-
スタート「App情報」を入力しよう(App Store Connect) (2:19)
-
スタート「価格および配信状況」の入力をしよう(App Store Connect) (1:34)
-
スタート「プラットフォームバージョン情報」を入力しよう(App Store Connect) (6:26)
-
スタートTestFlightでベータ版テストをしよう(App Store Connect) (6:22)
-
スタートテストが完了したベータ版を製品版として審査に提出しよう(AppReview) (3:04)
-
スタートリリースしたアプリのバージョンをアップしよう (2:35)
-
スタートiOS実機・シミュレーターでアプリが動かせない場合の対処法(error: Multiple commands produce・・)の対処法 (1:45)
-
スタートiOS実機でアプリを起動すると画面が真っ白になってしまう場合の対処法(ランチャースクリーンで止まってしまう場合含む) (1:17)
-
スタートAndroidのエミュレーターで日本語入力できない場合の対処法 (1:17)
-
スタートiOSのシミュレーターで日本語入力できない場合の対処法 (0:44)
-
スタートAndroidエミュレーター内のファイルが見れない場合の対処法(Error initializing ADB:Android Debug Bridge not found)) (1:44)
-
スタートAndroidエミュレーターで録画をする方法 (2:07)
-
スタートiOSシミュレーターで録画をする方法 (2:10)
-
スタートCould not determine the dependencies of task ':app :flutterBuildDebug'の対処法 (1:14)
-
スタートNo version of NDK matched the requested version・・・の対処法 (2:06)
-
スタートsetState() or markNeedsBuild called during buildの対処法 (1:43)
-
スタートiOSで効果音が鳴らせない場合('soundpool/soundpool-Swift.h' file not found')の対処法 (2:20)
-
スタート人の作ったプロジェクトがスムーズに開けない場合の対処法(Android framework detected.) (1:01)
-
スタート「Flutter Outline」を開いても何も表示されない(Nothing to show)場合の対処法 (0:27)
-
スタートDartのプラグインをインストールしたにも関わらず「Dart SDK is not configured」が出てしまう場合の対処法 (1:37)
-
スタートandroidフォルダにある「build.gradle」ファイルは開いた瞬間にニョロニョロが出ても問題なし! (1:57)
-
スタートPods-Runner-frameworks.sh: Permission deniedというエラーが出てiOSシミュレーター・実機でアプリが起動しない場合の対処法) (1:37)
-
スタート【Moor】moor_ffi not found/Failed to load dynamic libraryというエラーが出た場合の対処法 (4:04)
-
スタートコード生成(build_runner)したら「Failed to precompile build_runner」という謎のエラーが出て失敗する場合の対処法 (0:47)
-
スタート「Could not resolve the package 'characters' in 'package:characters/characters.dart'.」の対処法 (1:06)
-
スタート【Android】「AAPT: error: unexpected element found in 」の対処法 (3:42)
-
スタート【Macのみ】Dartのコマンドラインツールが使えない場合の対処法(Flutterのバージョンを上げたにも関わらずDartのバージョンが一緒に上がらない場合) (5:27)
-
スタート【重要】Android Studio4.0へのアップグレードはこの手順で行ってください(Flutter・Dartのプラグインのアップデートが必要です) (4:06)
-
スタートFlutterのバージョンを1.20.1にアップグレードする際の注意点(コード生成(build_runner)がうまくいかなくなる場合の対処法) (3:15)
-
スタートFlutterのバージョンを1.12に上げたら必要になるかもしれない統合処理(The plugin "・・" requires your app to be migrated to the Android embedding v2の対処法) (4:55)
-
スタートiOS14の実機でデバッグモードで動かしたFlutterアプリをiOS端末上のアプリアイコンをクリックして再起動できない場合の対処法 (2:51)
-
スタートAndroid Studioを4.1にアップグレードしたら「Flutter plugin not installed」というエラーが出た場合の対処法 (1:29)
-
スタートflutter doctorしてもAndroid Studio4.1を認識してくれない場合の対処法 (1:28)
-
スタートRaisedButtonとFlatButtonが非推奨に(ElevatedButtonとTextButtonに) (7:47)
-
スタートListのコンストラクタが非推奨に(List() => []に) (1:35)
-
スタート本編課題アプリのFlutter2.0への移行対応(①:はじめてのアプリ) (2:02)
-
スタート本編課題アプリのFlutter2.0への移行対応(②:ツッコミマシーン) (5:59)
-
スタート本編課題アプリのFlutter2.0への移行対応(③:計算脳トレ) (3:43)
-
スタート本編課題アプリのFlutter2.0への移行対応(④:私だけの単語帳) (4:14)
今すぐはじめよう!
秘訣②:プログラミング経験ゼロでも一切門前払いしない完全初心者向けカリキュラム
とは言え、いくら「スモールステップ」と言っても、中身が難しかったり、つまらなかったりすると、いくら短くても挫折してしまいますよね。
ぼくは、スマホアプリプログラミングの勉強を1からやってきて、色んな挫折を繰り返してきたわけですが、その中で思ったのは、
世間のスマホアプリ開発を教えるカリキュラムというのは、たいがい「ハーバードへの留学」ですわ
ということだったんです。
ハーバードに行って「勉強」は教えてくれるけど、授業は「英語」ですと。それと同じですね。
スマホ(iOS/Android)の機能に関しては1から教えるけれども、それを書くためのプログラミング言語は、事前にちゃんと身につけてきてちょうだいね
という感じになっているのが、プログラミングを全くやったことのない人にとって、非常に大きな壁になっている。
実際、ぼくもJavaを知らずにAndroidアプリ開発の門を叩いてしまってエライ目にあったので、この巨大な壁の高さを身にしみて実感させられたんです。
だから、「みんプロ式」は、
「『ハーバード』に留学してもらうけど、英語いらんで」というコンセプト。
つまり、「英語も一緒に学べるハーバード大学」みたいな感じで、
「スマホアプリ開発講座やけど、言語はおろかプログラミング経験も一切いらんで」
というカリキュラムなんです。
スマホやプログラミングの基礎知識など、他の講座では省略しがちな、本当に初歩的な段階からスタートしますから、プログラミング経験ゼロの方でも一切門前払いしない、まさに
「スマホアプリを作ってみたいけどプログラミングを全くやったことがない人のための講座」
なんですね。
今すぐはじめよう!
秘訣③:実践的なスキルを「からだでおぼえられる」ハンズオンスタイル
あと、文法を項目立ててちまちま教えられても、なかなかモチベーションが続かない「学習指導要領的」カリキュラムの問題。
これってつまらないんですよね。
だから、ぼくなんかは「文法を順序立ててちまちまやっても仕方ない」から、最終的には
自分の作りたいアプリのイメージをまず持ってきて、それに必要なものをかいつまんで覚えていくという方が絶対ええやろ!
と。
こういう方が、学習のモチベーションって上がるんやろうなということに気付いたんです。
そして、結果的にそれがうまくいきまして、あれだけ挫折を繰り返してたのに、アプリ作るところまで行くことができたんですね。
ですから、「みんプロ式」のカリキュラムを組んでいくにあたっては、
最終的な成果物がちゃんとイメージできるようにする
ということに一番気を配ったんです。
そうしないと、初心者の方はモチベーションが続かないというのが、ぼくの挫折経験からわかっていましたので。
つまり、
プログラミング言語の文法やスマホの機能の学習指導要領の教科書的にイチから学んで、それからアプリを作ってみる
のではなくて、
「実際のアプリを作る」ということをカリキュラムの主軸に持ってきて、
このアプリを作りたかったら、こういう機能が必要
このアプリを作りたかったら、こういう文法を覚える必要がある
という
「逆算方式」のカリキュラムにしたんです。
だから「みんプロ式」ではプログラミングサポーター(講師)と一緒にアプリを作りながら進めていきます。
簡単なアプリから徐々に難しいアプリへと、具体的なアプリを段階を踏みながら作っていきますので、実践的なスキルを無理なく「からだでおぼえる」ことができる。
これも、挫折せずに続けてもらうための工夫なんですね。
今すぐはじめよう!
秘訣④:初心者がつまづきやすい「カベ」を無理なく乗り越えてもらうためのスライド解説方式
カリキュラムの問題以外でも、初心者の方がつまづいてしまう地雷はありとあらゆるところに潜んでいます。
「空気どころかカベやで?!」という感じの専門用語とか、
本の通りやってるはずやのに、そのとおりに動かへんとか
「ハイフン(-)」が「アンダースコア(_)」になっているなどの超ケアレスミスで引っかかって抜け出せなかったりとか
後から考えるとすごいしょうもないけれども、実際に遭遇すると地獄に落ちたような感じになっちゃう。
そんな、業界に長いこといる人から見たら「えっ!?なんでそんなところで詰まってんの?」というような「カベ」が初心者の段階では無数に散りばめられているんですね。
だから、そういう「カベ」を1つずつ丁寧に乗り越えさせてあげる必要があるんです。
ぼくは幸か不幸か、これまでさんざん挫折の泥沼をもがいてきました。
その経験を活かして、初心者の方がつまづきやすい「カベ」の乗り越え方を、直感的でわかりやすいスライドを使って丁寧に解説するスタイルをとったんです。
また、ツールを使う手順や実際のコードの書き方などの「プロセス」もわかるように工夫しました。
こういう「プロセス」は、初心者の方が非常につまづきやすいところなのですが、本(文字)のテキストではなかなか伝えることができない部分なんです。
それを「みんプロ式」では、動画テキストであることの特徴をフル活用して、この「プロセス」をしっかりカバー。
まさに隣でぼくと一緒にアプリを作っている感覚で進められるので、テキストと同じペースで「続けられる」というワケなんですね。
今すぐはじめよう!
秘訣⑤:どんな質問でも丁寧に答えてもらえる安心のサポート体制
そうは言っても、プログラミングの学習は試行錯誤の連続。どんなにわかりやすい講座でも、思わぬところでつまづいちゃうんです。
そんなときこそ、プログラミングサポーター(講師)であるぼくの出番なんですね。
「質問をする」というのは、プログラミング講座に限らず結構勇気がいることですよね。ぼくも質問するのはすごく苦手です。
「みんプロ式」では「わからへんけど、これ聞いたらバカにされるんちゃうかな?」というようなことは一切ありませんので、わからないところがあれば遠慮なく質問してもらえればと思います。
(質問に関する注意事項)
- 「Q&Aサポート無し版」をご利用の方は、ご利用頂けませんのでご注意下さい。
- 講座内容に関することであれば、どんな質問でもお答えいたしますが、ご自分のオリジナルのプロジェクト・アプリ作成に関するご質問にはお答えできませんのでご注意下さい。
- ご質問の際は、該当箇所がわかるもの(画面のスクリーンショット・エラーコード・ソースコード)のご連携をお願いします。また質問内容の記載なくプロジェクトだけをご連携いただくのはご遠慮頂いておりますのでご留意願います。
(注)このコースはコメント機能を使ってプログラミングサポーター(講師)へ質問が行えるバージョンです。質問機能が不要な方は、よりリーズナブルな価格で受講いただける「質問対応無し版」(定価:17,900円)もご用意してありますので、そちらをご検討ください。
今すぐはじめよう!
この講座を修了するとこんなことができるようになります!
4つのアプリを一緒に作ることで
Flutterを使ったスマホアプリ開発(iOS・Android)に最低限必要なスキルを
最短3ヶ月で一気通貫で習得できます!
- 今最も注目のアプリ開発ツール「Flutter」を使ったスマホアプリ開発(iOS・Android)ができるようになります。
- 「Flutter」アプリを作るためのプログラミング言語「Dart」の基礎も身につけることができます。
- 非同期処理や効果音を出すスマホアプリ(iOS・Android)を作れるようになります。
- 複数画面やタイマー処理を行うスマホアプリ(iOS・Android)を作れるようになります。
- データベースを使ったスマホアプリ(iOS・Android)を作れるようになります。
- App Store・Google Playからあなたのオリジナルアプリを世界に向けて発信することができるようになります。
(注1)AndroidアプリをGoogle Playからリリースするためには、開発者登録料・25米ドル(1回のみ)が必要になります。
(注2)iOSアプリをApp Storeからリリースするためには、Macパソコンと開発者登録料・99米ドル(年間)が必要になります(WindowsパソコンではiOSアプリをリリースすることはできません)。
なぜ「みんプロ式」は25時間超の講座でアプリを4つしか作らないのか?
この講座は、Flutter/Dartの技術全体を「体全体」に例えると、指一本の「爪のアカ」くらいの分量でしかありません。
この講座の目指しているところは、その「爪のアカ」をお茶にして飲んで頂くことによって、自分でそこから先を自律的に学んでいけるための基盤を作っていただくことが目的なんです。
他のスマホアプリ開発講座では、この講座よりもっと短い時間でもっとたくさんのアプリを詰め合わせた「浅く広く」的な感じでやられている場合が多いです。
しかし、その方式は経験者の方には望ましいかもしれませんが、
自分の挫折経験からそれだと完全初心者の方はいきなりすっ飛ばされた感じになってしまって振り切られちゃうんです。
だからぼくは完全初心者の方でも振り切られずに「ちゃんと自分で鳥かごから羽ばたいてもらえる」ような講座設計にしたかったんです。
例えばFlutterやDartの公式サイトとかを見て「うげーっ」となるんじゃなくて、それを見て「あっ、こうやったら出来んの?じゃあやってみよう」という感じで、実際に手を動かすことが出来るくらいのベースをつくるお手伝いをしたいということが目的なんですね。
そのためには、何も意味がわからないままコードを書くだけでは難しいので、なるべく概念をちゃんと理解して頂くために、アプリの数を抑える代わりに解説パートを厚くしているというわけなのです。
ですので、冒頭でも書いている通り、
詳しい解説はいいからとにかく手数を増やしたいという方にはこの講座は向いていません。
一方で、意味もわからずにただコードを書くだけじゃなくて、概念もちゃんと理解して今後自律稼働していくための基盤を作りたいという方にはお役に立てる講座だと考えています。
カリキュラム
-
プレビュー007:オープニング(初心者でない方はこのセクションは飛ばして頂いて構いません) (1:15)
-
プレビュー008:スマホとは(歴史・保有台数・市場規模) (5:04)
-
プレビュー009:スマホ界の2大巨塔・AndroidとiOS[iphone]との違いとは (3:17)
-
スタート010:アプリとは(ハードウェアとソフトウェア) (1:06)
-
スタート011:プログラミングとは (2:12)
-
スタート012:プログラミング処理の基本<文・関数(メソッド)・クラス> (6:11)
-
プレビュー013:プログラミングの3ステップ(ブロック作りと同じ) (2:39)
-
スタート014:プログラムをアプリになるまでの仕組み(コンパイルとビルド) (4:27)
-
プレビュー015:オープニング(Flutterアプリを作るために必要な道具とは) (3:47)
-
スタート016:【Windows】Flutterアプリの開発ツール(SDK)の設定をしよう (7:50)
-
スタート017:【Windows】Android Studioのダウンロードとインストールをしよう (2:45)
-
スタート018:【Windows】Androidアプリを実機で動かすための設定をしよう(Android Studio) (3:10)
-
スタート019:【Windows】Androidアプリをエミュレーターで動かすための設定をしよう(Android Studio) (4:08)
-
スタート020:【Mac】Flutterアプリの開発ツール(SDK)の設定をしよう (8:47)
-
スタート021:【Mac】Android Studioのダウンロードとインストールをしよう (3:13)
-
スタート022:【Mac】Androidアプリを実機で動かすための設定をしよう(Android Studio) (2:40)
-
スタート023:【Mac】Androidアプリをエミュレーターで動かすための設定をしよう(Android Studio) (4:06)
-
スタート024:【Mac】Xcodeのダウンロードとインストールをしよう (2:51)
-
スタート025:【Mac】iOSアプリを実機で動かすための設定をしよう(Xcode) (8:36)
-
スタート026:【Mac】iOSアプリをシミュレーターで動かすための設定をしよう(Xcode) (2:27)
-
スタート027:【Windows・Mac共通】Android Studioの初期設定をしよう(Flutter/Dartプラグインのインストール等) (7:55)
-
プレビュー028:オープニング(今回作るアプリの紹介[はじめてのアプリ]) (1:56)
-
スタート029:Android Studioで新しいFlutterプロジェクトを作ってみよう (7:13)
-
スタート030:【初心者向け解説】プロジェクトをWindowsエクスプローラーあるいはMacのFinderで見る方法 (1:38)
-
スタート031:既に作ったプロジェクトを開いてみよう(作りかけのプロジェクトも含む) (1:51)
-
プレビュー032:【初心者向け解説】プログラミングの天才に学ぶAndroid Studioに行く前にすべきこと(スマホアプリを作るための3ステップ) (3:41)
-
スタート033:<資料>設計図(はじめてのアプリ)
-
プレビュー034:今回作るアプリの設計図を紙に書こう(はじめてのアプリ) (3:00)
-
スタート035:Flutterプロジェクトのフォルダ構造を知ろう(最低限抑えておくべき3兄弟) (11:21)
-
スタート036:<資料>今回のアプリで使うリソース
-
スタート037:アプリで使う画像をプロジェクトに取り込もう(小道具のプロジェクトへの取り込み方3ステップ) (6:38)
-
プレビュー038:Flutterはどういう順番でコード書いたらええねん6ステップ (8:15)
-
スタート039:アプリ全体に共通する部分(アプリのルート部分)を実装しよう (6:20)
-
スタート040:【初心者向け解説】Dartプログラミングはたったの2ステップしかない! (4:59)
-
スタート041:【初心者向け解説】クラスのインスタンス化(初期化)とは (8:07)
-
スタート042:【初心者向け解説】Dartにおけるメソッド(関数)の作り方 (8:53)
-
スタート043:【解説】Widget(ウィジェット)とは (13:35)
-
スタート044:「StatefulWidget」を使ってホーム画面の外枠を実装をしよう (6:22)
-
スタート045:【初心者向け解説】ファイル・クラス・関数(メソッド)等の名前付けの規則 (4:00)
-
スタート046:【初心者向け解説】プロジェクト内のファイル・フォルダ名の変更の仕方 (1:16)
-
スタート047:「Scaffold」を使ってホーム画面をマテリアルデザイン仕様にしてアプリバーを設定しよう (9:05)
-
スタート048:【解説】Material Design(マテリアルデザイン)とは(MaterialAppの謎解き) (13:27)
-
スタート049:【解説】Widgetの並べ方超基本3パターン (2:53)
-
スタート050:「Column」を使ってWidgetを縦方向に並べよう (3:45)
-
スタート051:「Text」を使って文字を表示させよう (5:32)
-
スタート052:「Center」を使ってWidgetを中央寄せしよう (4:04)
-
スタート053:「TextField」を使って文字入力欄を設置しよう (5:16)
-
スタート054:「Image.asset」を使ってプロジェクトに取り込んだ画像を表示させよう (2:25)
-
スタート055:「ElevatedButton」を使ってボタンを表示させよう (5:11)
-
スタート056:「Container」を使って画面全体に余白(padding)を作ろう (5:05)
-
スタート057:【解説】Flutter Outlineの基本的な使い方 (3:11)
-
スタート058:「SizedBox」を使ってボタンを横幅いっぱいに拡げよう (4:10)
-
スタート059:「Expanded」を使って画像の縦幅を残り枠いっぱいに拡げよう (3:30)
-
スタート060:ボタンを押したら文字を表示させる処理を実装しよう(変数の作り方) (6:44)
-
スタート061:入力欄(TextField)に入れた文字を取得して表示させよう (3:39)
-
スタート062:ボタンを押したら画像を表示させる処理を実装しよう (1:41)
-
スタート063:【解説】Dartにおけるスコープ(変数・関数にアクセスできる[参照できる・使える]範囲) (7:17)
-
スタート064:「setState」メソッドを使って設定した文字・画像を画面に表示させよう(アプリの状態変化を画面に反映させる) (4:59)
-
スタート065:【初心者向け解説】プログラミングにおける「=」とは(代入) (4:39)
-
スタート066:アプリを動かす前にプロジェクトを一旦きれいにしよう(flutter clean) (0:54)
-
スタート067:ソースコードのフォーマットを整えよう(Reformat File) (1:23)
-
スタート068:【Windows・Mac共通】作ったアプリをAndroidエミュレーターで動かしてみよう (2:45)
-
スタート069:【Windows・Mac共通】作ったアプリをAndroid実機で動かしてみよう (2:23)
-
スタート070:【Macのみ】作ったアプリをiOSシミュレーターで動かしてみよう (1:54)
-
スタート071:【Macのみ】作ったアプリをiOS実機で動かしてみよう(素晴らしきマルチプラットフォームの世界) (3:09)
-
スタート072-1:【初心者向け解説】再生ボタン[Run]とゲジゲジボタン[Debug]の違い(実は両方ともFlutterではデバッグ[Debug]モード) (4:02)
-
スタート072-2:【初心者向け解説】Flutterアプリを動かす3つのモード(Debugモード / Releaseモード / Profileモード) (4:15)
-
スタート073:【+α】インターネット上の画像をアプリで表示させてみよう(Image.network) (2:24)
-
スタート074:【+α】デバッグバナーを非表示にしよう (1:32)
-
スタート075:【+α】アプリ全体のテーマをダークモードに変更しよう (2:14)
-
スタート076:【+α】「CupertinoApp」を使ってアプリの見た目をiOS仕様に変えよう (8:07)
-
スタート077:<資料>今回作ったアプリのプロジェクト(はじめてのアプリ)
-
プレビュー078:オープニング(今回作るアプリの紹介[ツッコミマシーン]) (1:40)
-
スタート079:<資料>今回のアプリの設計図(ツッコミマシーン)
-
プレビュー080:今回作るアプリの設計図を紙に書こう(ツッコミマシーン) (2:45)
-
スタート081:Android Studioで今回作るアプリのプロジェクトを作ろう (3:31)
-
スタート082:<資料>今回のアプリで使うリソース
-
スタート083:アプリで使う効果音ファイルをプロジェクトに取り込もう (4:45)
-
スタート084:アプリ全体に共通する部分(アプリのルート部分)を実装しよう(main.dart) (5:52)
-
スタート085:【解説】runApp関数とは (3:33)
-
スタート086:【初心者向け解説】クラスの継承(extends)とメソッドのオーバーライド(override)とは (11:13)
-
スタート087:【初心者向け解説】「ご先祖様」に「子孫」を代入するのはOK(プログラミングにおける「=」とは[完全版]) (2:42)
-
プレビュー088:「StatefulWidget」を使ってホーム画面の外枠を実装をしよう(home_screen.dart) (3:45)
-
スタート089:「Scaffold」を使ってホーム画面をマテリアルデザイン仕様にしてアプリバー(AppBar)を設定しよう (4:15)
-
スタート090:「Column」と「Row」を使ってボタンを3行2列の碁盤の目に並べよう (7:57)
-
スタート091:「Expanded」と「flex」を使って碁盤の目を画面いっぱいに均等に並べよう (5:39)
-
スタート092:「CrossAxisAlignment」を使ってボタンの大きさを枠いっぱいに拡げよう (5:56)
-
スタート093:「Container.padding」を使って画面全体と各枠内のボタンに余白(padding)を作ろう (5:11)
-
スタート094:【初心者向け解説】「List(配列)」とジェネリクス(総称型)とは (11:44)
-
スタート095:「List」を使って6つのボタンに表示させる文字をセットしよう (7:50)
-
スタート096:【初心者向け解説】メモリとは(音のメモリ再生(ダウンロード再生)とストリーミング再生の違い) (8:43)
-
スタート097:【解説】Flutterアプリで効果音を出す方法5ステップ(soundPoolパッケージの使い方) (5:38)
-
スタート098:soundPoolパッケージをプロジェクトに追加しよう(パッケージを使うための2ステップ) (6:08)
-
スタート099:【解説】pubspec.yamlファイルとは (6:01)
-
スタート100:【解説】StatefulWidgetはどうやって状態管理をしているのか (8:23)
-
スタート101:SoundPoolクラスの初期化と破棄の実装をしよう (6:31)
-
スタート102:効果音のサウンドIDをセットしよう (4:44)
-
スタート103:【初心者向け解説】ビルト・イン型クラスとは(Dartにおける2種類のクラス) (11:10)
-
スタート104:【解説】非同期処理(async-await)とは (8:13)
-
スタート105:【解説】「Future」とは (8:27)
-
スタート106:【解説】Dartでの非同期処理の使い方3原則 (10:42)
-
スタート107:プロジェクトに取り込んだ効果音ファイルをメモリにロードしよう(rootBundle#load) (9:53)
-
スタート108:【解説】プロジェクトに取り込んだデータ(assets)のロード方法(rootBundleとは) (11:32)
-
スタート109:ボタンを押したら効果音を鳴らす処理を実装しよう (2:38)
-
スタート110:initStateで非同期処理ができるようにしてアプリを動かしてみよう (8:20)
-
スタート111:【初心者向け解説】「空っぽ(null)」と「空白("")」の違いとは (2:32)
-
プレビュー112:【初心者向け解説】エラーはどこでわかるのか(プログラミングにおける3種類のエラー) (6:28)
-
スタート113:【解説】StatefulWidgetはなぜStateオブジェクトと別クラスで分離されているのか(Widgetの本当の正体とは) (12:28)
-
スタート114:【解説】Flutterとネイティブアプリ開発(Android/iOS)の状態管理方法比較 (6:35)
-
スタート115:【+α】非同期処理に例外処理を実装してみよう (5:38)
-
スタート116:【+α】RaisedButtonをカスタマイズしてみよう (11:08)
-
スタート<資料>今回作ったアプリのプロジェクト(ツッコミマシーン)
-
プレビュー118:オープニング(今回作るアプリの紹介[計算脳トレ]) (5:43)
-
スタート119:<資料>今回の作るアプリの設計図(計算脳トレ)
-
プレビュー120:今回作るアプリの設計図を紙に書こう(計算脳トレ) (4:48)
-
スタート121:Android Studioで今回作るアプリのプロジェクトを作ろう (2:31)
-
スタート122:<資料>今回のアプリで使うリソース
-
スタート123:アプリで使うリソース(画像・音)をプロジェクトに取り込もう (3:38)
-
スタート124:アプリ全体に共通する部分(アプリのルート部分)を実装しよう(main.dart) (4:38)
-
スタート125:[ホーム画面]外枠を実装をしよう(home_screen.dart) (3:45)
-
スタート126:[ホーム画面]「SafeArea」を使ってアプリバー(AppBar)無しのレイアウトに変えよう (3:15)
-
スタート127:[ホーム画面]「Column」を使ってWidgetを縦方向に並べよう (4:22)
-
スタート128:[ホーム画面]「Expanded」と「Container」を使ってボタンを画面最下部中央に設置しよう (5:35)
-
スタート129:[ホーム画面]「ElevatedButton.icon」を使ってボタンにアイコンをつけて見た目をカスタマイズしよう (6:30)
-
スタート130:【初心者向け解説】マテリアルアイコンとは (4:08)
-
スタート131:【解説】Flutterアプリにおける画面・文字の大きさの単位とは(物理ピクセルと論理ピクセル) (13:13)
-
スタート132:【+α】「MediaQuery.of」メソッドを使って画面のサイズ(論理ピクセル)を取得しよう (2:30)
-
プレビュー133:【解説】「DropdownButton」の使い方3ステップ (2:07)
-
スタート134:[ホーム画面]「SizedBox」を使ってWidget間に空白を設定しよう (4:18)
-
スタート135:[ホーム画面]「DropdownMenuItem」を使って「DropdownButton」に表示させる選択肢をセットしよう(items属性) (6:51)
-
スタート136:【+α】「Cascade Notation(..)」を使ってコードをシンプルにしよう (3:17)
-
スタート137:[ホーム画面]「DropdownButton」で選択されたアイテムをセットしよう(value属性) (5:26)
-
スタート138:[ホーム画面]「DropdownButton」でアイテムが選択された時の処理を実装しよう(onChanged属性) (2:23)
-
スタート139:【解説】onPressed/onChanged属性の中身はどうなっているのか (8:03)
-
スタート140:【解説】Flutterにおける画面遷移の方法(NavigatorとMaterialPageRoute) (8:27)
-
スタート141:[ホーム画面]スタートボタンをクリックしてテスト画面を開く処理を実装しよう (7:18)
-
スタート142:[ホーム画面・テスト画面]名前付きパラメータ(Named Parameter)を使って選択した問題数をホーム画面からテスト画面に渡そう (7:25)
-
スタート143:【初心者向け解説】Flutterにおける2つの定数(「const」と「final」) (6:22)
-
スタート144:「const」を使って描画パフォーマンスを向上させよう(Flutter Performanceの使い方) (10:44)
-
スタート145:【初心者向け解説】どこからでもインスタンスを経由せずに直接使えるメンバを作る2つの方法(「top-level」と「static」) (9:53)
-
スタート146:[テスト画面]画面全体のレイアウトの枠組みを作ろう(SafeArea/Container/Column) (6:37)
-
スタート147:[テスト画面]「Table」と「Center」を使ってスコア表示部分を実装しよう (11:06)
-
プレビュー148:[テスト画面]問題表示部分を実装しよう(Expandedとflex/Container) (12:17)
-
スタート149:[テスト画面]こたえ合わせボタン部分を実装しよう(RaisedButton/SizedBox/Container) (3:09)
-
スタート150:[テスト画面]もどるボタン部分を実装しよう(RaisedButton/SizedBox/Container) (2:44)
-
スタート151:[テスト画面]電卓ボタン部分を実装しよう(Table/Container) (7:56)
-
スタート152:[テスト画面]「Stack」を使って○・☓画像とテスト終了テキスト部分のWidgetを積み重ねよう (7:39)
-
スタート153:【初心者向け解説】条件分岐の「if文」と比較演算子(プログラミングは3つの流れ) (8:01)
-
スタート154:[テスト画面]テスト開始前の初期設定をしよう(①:ホーム画面で選択した問題数の引き継ぎ) (6:01)
-
スタート155:[テスト画面]テスト開始前の初期設定をしよう(②:効果音の準備) (11:23)
-
スタート156:[テスト画面]出題処理を実装しよう(①:出題時の初期設定) (6:16)
-
スタート157:[テスト画面]出題処理を実装しよう(②:乱数(Random)を使って出題) (6:45)
-
スタート158:[テスト画面]電卓ボタンを押す処理を実装しよう (11:20)
-
スタート159:[テスト画面]こたえ合わせ処理を実装しよう(①:初期設定) (4:52)
-
プレビュー160:【初心者向け解説】三項条件演算子とは(?/:) (3:27)
-
スタート161:[テスト画面]こたえ合わせ処理を実装しよう(②:正解判定) (9:09)
-
スタート162:[テスト画面]こたえ合わせ処理を実装しよう(③:正答率の計算) (3:36)
-
スタート163:[テスト画面]こたえ合わせ処理を実装しよう(④:終了判定) (2:28)
-
スタート164:[テスト画面]こたえ合わせ処理を実装しよう(⑤:「Timer」を使って1秒後に次の問題を出題) (2:53)
-
スタート165:<資料>次のレクチャー(タイマー処理の解説)で使うプロジェクト
-
スタート166:【解説】タイマー処理(Timer)とは (10:44)
-
スタート167:[テスト画面]もどるボタンを押したらホーム画面に戻る処理を実装しよう(Navigator.popメソッド) (6:41)
-
スタート168:<資料>今回作ったアプリのプロジェクト(計算脳トレ)
-
プレビュー169:オープニング(今回作るアプリの紹介[私だけの単語帳]) (6:52)
-
スタート170:<資料>今回の作るアプリの設計図(私だけの単語帳)
-
プレビュー171:今回作るアプリの設計図を紙に書こう(私だけの単語帳) (8:07)
-
スタート172:Android Studioで今回作るアプリのプロジェクトを作ろう (2:39)
-
スタート173:<資料>今回の作るアプリのリソース
-
スタート174:アプリで使うリソース(画像)をプロジェクトに取り込もう (4:16)
-
スタート175:アプリ全体に共通する部分(アプリのルート部分)を実装しよう (3:17)
-
スタート176:[ホーム画面]外枠の実装をしよう(アプリバー無しのマテリアルデザイン仕様) (2:26)
-
スタート177:[ホーム画面]画面全体のレイアウトの枠組みを作ろう (5:03)
-
スタート178:カスタムフォントの設定をしよう(カスタムフォントの使い方4ステップ) (8:37)
-
スタート179:「Divider」を使って横線を引こう (3:55)
-
スタート180:「VoidCallback」を使ってボタンをカスタムウィジェットで作ろう (12:02)
-
スタート181:<資料>次のレクチャー(VoidCallbackの解説)で使うプロジェクト
-
スタート182:【解説】「VoidCallback」とは何か (6:12)
-
スタート183:【解説】ラジオボタン(RadioListTile)の使い方4ステップ (6:31)
-
スタート184:[ホーム画面]ラジオボタンの表示部分を実装しよう(title属性) (3:13)
-
スタート185:[ホーム画面]ラジオボタンにセットする値を設定しよう(value/groupValue属性) (2:42)
-
スタート186:[ホーム画面]ラジオボタンが選択されたときの処理を実装しよう(onChanged属性) (5:33)
-
スタート187:[ホーム画面]単語一覧画面に遷移する処理を実装しよう (4:41)
-
スタート188:[ホーム画面]テスト画面に遷移する処理を実装しよう (4:45)
-
スタート189:【解説】「BuildContext」とは (15:01)
-
スタート190:「AppBar」を使えば前の画面に戻る処理を実装する必要がない! (5:15)
-
スタート191:[一覧画面]「FloatingActionButton」を使って編集画面に遷移する処理を実装しよう (10:44)
-
スタート192:[編集画面]問題入力部分を実装しよう (6:32)
-
スタート193:[編集画面]こたえ入力部分を実装しよう (1:46)
-
プレビュー194:[編集画面]「SingleChildScrollView」を使ってコンテンツが画面からはみ出さないようにしよう (3:09)
-
スタート195:[編集画面]「WillPopScope」を使って一覧画面に戻る処理を実装しよう (6:49)
-
スタート196:【初心者向け解説】データベース(Database:DB)とは (5:53)
-
プレビュー197:【解説】Flutter/Dartで使えるデータベースライブラリ「Moor」とは (6:07)
-
スタート198:【解説】データベースライブラリ「Moor」の使い方9ステップ (12:56)
-
スタート199:Moorパッケージをプロジェクトに追加しよう(Moorの使い方9ステップ①) (2:59)
-
スタート200:コード生成用ファイルとテーブルクラスの設定をしよう(Moorの使い方9ステップ②③) (6:11)
-
スタート201:【解説】SQLiteで使えるデータの型とテーブルクラスのコードの解説 (6:13)
-
スタート202:【初心者向け解説】「Set」とは (3:25)
-
スタート203:【初心者向け解説】「get」とは (5:12)
-
スタート204:データベースクラスの設定をしよう(Moorの使い方9ステップ④) (5:28)
-
スタート205:【解説】Dartにおける7つのコンストラクタ(「:」の謎解き) (10:53)
-
スタート206:flutterコマンドを使ってMoor用のコードを生成しよう(Moorの使い方9ステップ⑤) (3:00)
-
スタート【エラー対応】コード生成が失敗(無限ループ)する場合の対処法(Bad state: Unexpected diagnostics: sky_engine\lib\ui\channel_buffers.dart - This requires the 'non-nullable' language feature to be enabled) (3:15)
-
スタート207:データベースのスキーマバージョンを設定しよう(Moorの使い方9ステップ⑥) (1:06)
-
スタート208:【解説】「annotation:アノテーション(@)」とは (4:43)
-
スタート209:データベースの4つの操作メソッド(クエリ)を作成しよう(Moorの使い方9ステップ⑦) (8:16)
-
スタート210:【解説】Moorにおけるデータベース4つの操作メソッド(CRUD)の解説 (12:20)
-
スタート211:データベースクラスのインスタンスを設定しよう(Moorの使い方9ステップ⑧) (3:01)
-
スタート212:[編集画面]新しい単語をデータベースに登録する処理を実装しよう(Moorの使い方9ステップ⑨) (8:58)
-
スタート【エラー対応】moor_ffi not found/Failed to load dynamic libraryというエラーが出た場合の対処法 (4:04)
-
スタート213:【解説】端末にインストールされているSQLiteデータベースの中身を見る方法(DB Browser for SQLiteの使い方) (5:05)
-
スタート214:[編集画面]トーストメッセージ(Toast)を使って登録完了メッセージを表示させよう (4:06)
-
スタート215:[編集画面]例外処理を使って単語を重複して登録しようとした際にエラーメッセージを表示させよう(Moorで重複データをチェックする方法) (5:39)
-
スタート216:[一覧画面]データベースに登録した単語データを取得する処理を実装しよう (5:17)
-
スタート217:【解説】ListViewの使い方5ステップ (4:45)
-
スタート218:[一覧画面]「ListView」を使って単語の一覧リスト部分を実装しよう (4:46)
-
スタート219:[一覧画面]「Card」と「ListTile」を使って単語の一覧リスト部分を実装しよう (9:49)
-
スタート220:[一覧画面]一覧に表示された単語を長押ししたら削除する処理を実装しよう (5:18)
-
スタート221:「enum(列挙型)」を使って編集ステータスの設定をし、編集画面のコンストラクタを修正しよう (5:27)
-
スタート222:[一覧画面]一覧に表示された単語をタップしたときに編集画面に遷移する処理を実装しよう (2:58)
-
スタート223:[編集画面]一覧画面から渡された値を引き継ごう (7:18)
-
スタート224:[編集画面]一覧画面で選択した単語を修正する処理を実装しよう (6:37)
-
スタート225:データベースにフィールド(暗記済みフラグ)を追加し変更を反映させよう (7:51)
-
スタート226:既に端末にインストールされている旧バージョンのデータベースとの統合処理を実装しよう (4:49)
-
スタート227:[編集画面]データベースのフィールド追加に伴う単語の登録・修正処理を変更しよう (3:23)
-
スタート228:テストの状態を管理するためのステータスを設定しよう(TestStatus) (3:15)
-
スタート229:[テスト画面]画面全体のレイアウトの枠組みを作ろう (5:52)
-
スタート230:[テスト画面]問題数を表示するパートを実装しよう (4:50)
-
スタート231:[テスト画面]「Stack」でWidgetを重ねて問題カード表示パートを実装しよう (5:40)
-
スタート232:[テスト画面]「Stack」でWidgetを重ねてこたえカード表示パートを実装しよう (3:35)
-
スタート233:【解説】CheckBoxListTileの使い方3ステップ (3:58)
-
スタート234:[テスト画面]「CheckBoxListTile」を使って単語を暗記済みにする場合のチェックボックスを実装しよう (5:29)
-
スタート235:【+α】CheckBoxに表示する文字をボックスの右側にしてみよう (2:51)
-
プレビュー236:[テスト画面]テストで使う単語群をデータベースから取得しよう①(暗記済みの単語を除外して取得するクエリメソッドの作成) (6:08)
-
スタート237:[テスト画面]テストで使う単語群をデータベースから取得しよう②(テスト画面からクエリメソッド呼び出し) (5:52)
-
スタート238:[テスト画面]取得した単語リストをシャッフルしよう (4:22)
-
スタート239:[テスト画面]「switch」文を使ってテストの状態を切り替える処理を実装しよう(FloatingActionButton) (6:07)
-
スタート240:[テスト画面]テスト開始前の初期状態の設定をしよう (5:57)
-
スタート241:[テスト画面]問題カードを出す処理を実装しよう (4:50)
-
スタート242:[テスト画面]こたえカードを出す処理を実装しよう (3:14)
-
スタート243:[テスト画面]暗記済フラグをデータベースに登録しよう (5:01)
-
スタート244:[テスト画面]テスト終了時にメッセージを表示させよう (6:46)
-
スタート245:[一覧画面]暗記済の単語は一覧上でチェックマークを表示させよう(ListTile.trailing/Icon) (3:47)
-
スタート246:[一覧画面]暗記済の単語を下にソートする処理を実装しよう①(クエリメソッドの作成) (5:25)
-
スタート247:[一覧画面]暗記済の単語を下にソートする処理を実装しよう②(一覧画面からクエリメソッド呼び出しとリストの更新) (2:59)
-
スタート248:<資料>次のレクチャー(AlertDialogの解説)で使うプロジェクト
-
スタート249:【解説】確認ダイアログ(AlertDialog)の使い方4ステップ (8:24)
-
スタート250:[一覧画面]単語削除時に確認ダイアログ(AlertDialog)を出す処理を実装しよう (8:03)
-
スタート251:[編集画面]単語の登録・修正時に確認ダイアログ(AlertDialog)を表示する処理を実装しよう (9:53)
-
スタート252:[テスト画面]テスト終了時の確認ダイアログを実装しよう(AlertDialog) (8:37)
-
スタート253:【+α】「Radio(ラジオボタン)」を「Switch(切り替えトグル)」に変えてみよう (5:53)
-
スタート254:【+α】ランチャーアイコンを作ってみよう(flutter_launcher_iconsパッケージ) (5:17)
-
スタート255:【+α:補足1】AndroidのランチャーアイコンをAdaptive Iconにする方法 (5:50)
-
スタート256:【+α:補足2】AndroidのランチャーアイコンをAdaptiveからLegacyに戻す方法 (1:22)
-
スタート257:【+α】Android端末に表示されるアプリのタイトルと画面の向きを設定しよう (3:00)
-
スタート258:【+α:Macのみ】iOS端末に表示されるアプリのタイトルと画面の向き設定しよう(Xcode) (2:35)
-
スタート259:【+α】Android用のスプラッシュスクリーン(ランチャースクリーン)を作ってみよう (6:53)
-
スタート260:【+α:Macのみ】iOS用のスプラッシュスクリーン(ランチャースクリーン)を作ってみよう (4:08)
-
スタート261:<資料>今回作ったアプリのプロジェクト(私だけの単語帳)
-
スタートAndroidアプリの開発者登録をしよう(Google Playデベロッパーアカウント登録) (6:34)
-
スタート支払いプロフィールを設定しよう(Google Play Console) (6:08)
-
スタートターゲットAPIレベル・アプリID・アプリのバージョン設定をしよう(Android Studio) (7:40)
-
スタート【該当者のみ】ハイフン(-)の入ったドメイン名を使う場合の注意点(「AAPT: error: attribute 'package' in tag is not a valid Android package name: ・・・'」の対処法) (4:44)
-
スタート【解説】AndroidアプリのAPIレベルとは (7:29)
-
スタート【解説】なぜbuild.gradleファイルは2つ存在するのか (3:23)
-
スタートアップロード鍵を作ってGoogle Play Consoleにアップロードするファイル(App Bundle)を作ろう(Android Studio) (8:02)
-
スタート【解説】Google Playアプリ署名(App Signing)とは (3:47)
-
スタートGoogle Play Consoleに新規アプリを追加しよう (3:23)
-
スタートアプリのアクセス権と広告に関する設定をしよう(初期設定) (3:43)
-
スタートコンテンツのレーティングを設定しよう(初期設定) (1:41)
-
スタートターゲットユーザーを設定しよう(初期設定) (3:26)
-
スタート【解説】13歳未満対象のアプリをリリースする際の注意点(新しくなったGoogle Playファミリーポリシーへの対応) (5:01)
-
スタートアプリのカテゴリを選択し、連絡先情報を登録しよう(初期設定) (1:41)
-
スタートストアの掲載情報を設定しよう(初期設定) (6:11)
-
スタート内部テストを行うためのテスターを設定しよう(アプリのリリース) (2:11)
-
スタート新しいリリースを内部テスト版でリリースしよう(アプリのリリース) (2:10)
-
スタート内部テスト版アプリをテストし「リリース前」レポートで問題を確認しよう(アプリのリリース) (2:37)
-
スタートテストが完了した内部テスト版を製品版としてリリースしよう(アプリのリリース) (2:07)
-
スタートリリースしたアプリのバージョンアップをしよう (3:47)
-
スタート【重要】2020/11/2までにAndroidアプリの「targetSdkVersion」を「29」に上げる必要あり! (3:50)
-
スタートiOSアプリの開発者登録をしよう(Apple Developer Programへの登録) (7:06)
-
スタート支払いプロフィールを設定しよう(App Store Connect) (5:42)
-
スタートバンドルIDを登録しよう(App IDs) (4:03)
-
スタートApp Store Connectで新規アプリを追加しよう (3:45)
-
スタートアップロードするプロジェクトの設定を確認しよう(Xcode) (5:15)
-
スタートApp Store Connectにアプリのファイルをアップロードしよう(XCode) (5:43)
-
スタート「App情報」を入力しよう(App Store Connect) (2:19)
-
スタート「価格および配信状況」の入力をしよう(App Store Connect) (1:34)
-
スタート「プラットフォームバージョン情報」を入力しよう(App Store Connect) (6:26)
-
スタートTestFlightでベータ版テストをしよう(App Store Connect) (6:22)
-
スタートテストが完了したベータ版を製品版として審査に提出しよう(AppReview) (3:04)
-
スタートリリースしたアプリのバージョンをアップしよう (2:35)
-
スタートiOS実機・シミュレーターでアプリが動かせない場合の対処法(error: Multiple commands produce・・)の対処法 (1:45)
-
スタートiOS実機でアプリを起動すると画面が真っ白になってしまう場合の対処法(ランチャースクリーンで止まってしまう場合含む) (1:17)
-
スタートAndroidのエミュレーターで日本語入力できない場合の対処法 (1:17)
-
スタートiOSのシミュレーターで日本語入力できない場合の対処法 (0:44)
-
スタートAndroidエミュレーター内のファイルが見れない場合の対処法(Error initializing ADB:Android Debug Bridge not found)) (1:44)
-
スタートAndroidエミュレーターで録画をする方法 (2:07)
-
スタートiOSシミュレーターで録画をする方法 (2:10)
-
スタートCould not determine the dependencies of task ':app :flutterBuildDebug'の対処法 (1:14)
-
スタートNo version of NDK matched the requested version・・・の対処法 (2:06)
-
スタートsetState() or markNeedsBuild called during buildの対処法 (1:43)
-
スタートiOSで効果音が鳴らせない場合('soundpool/soundpool-Swift.h' file not found')の対処法 (2:20)
-
スタート人の作ったプロジェクトがスムーズに開けない場合の対処法(Android framework detected.) (1:01)
-
スタート「Flutter Outline」を開いても何も表示されない(Nothing to show)場合の対処法 (0:27)
-
スタートDartのプラグインをインストールしたにも関わらず「Dart SDK is not configured」が出てしまう場合の対処法 (1:37)
-
スタートandroidフォルダにある「build.gradle」ファイルは開いた瞬間にニョロニョロが出ても問題なし! (1:57)
-
スタートPods-Runner-frameworks.sh: Permission deniedというエラーが出てiOSシミュレーター・実機でアプリが起動しない場合の対処法) (1:37)
-
スタート【Moor】moor_ffi not found/Failed to load dynamic libraryというエラーが出た場合の対処法 (4:04)
-
スタートコード生成(build_runner)したら「Failed to precompile build_runner」という謎のエラーが出て失敗する場合の対処法 (0:47)
-
スタート「Could not resolve the package 'characters' in 'package:characters/characters.dart'.」の対処法 (1:06)
-
スタート【Android】「AAPT: error: unexpected element found in 」の対処法 (3:42)
-
スタート【Macのみ】Dartのコマンドラインツールが使えない場合の対処法(Flutterのバージョンを上げたにも関わらずDartのバージョンが一緒に上がらない場合) (5:27)
-
スタート【重要】Android Studio4.0へのアップグレードはこの手順で行ってください(Flutter・Dartのプラグインのアップデートが必要です) (4:06)
-
スタートFlutterのバージョンを1.20.1にアップグレードする際の注意点(コード生成(build_runner)がうまくいかなくなる場合の対処法) (3:15)
-
スタートFlutterのバージョンを1.12に上げたら必要になるかもしれない統合処理(The plugin "・・" requires your app to be migrated to the Android embedding v2の対処法) (4:55)