2011年にGoogleがJavaScriptを置き換える新しいウェブプログラミング言語の標準化を目指して公開したプログラミング言語。 Java風の構文を持ち、クラスベースのオブジェクト指向プログラミングをサポートする。また、Isolateというshared nothingなスレッド機構を持つ。
記述されたプログラムは「Dart VM」と呼ばれる仮想マシン上で動作する。またライブラリ「dart2js」でJavaScriptへ変換でき、Dartをサポートしていないブラウザでも実行可能。
*1:Google Developers Blog: Dart 1.0: A stable SDK for structured web apps
*2:Chromium Blog: Ecma forms TC52 for Dart Standardization
pub.dev Navigator 1・2に代わる簡易的な画面遷移のプラグインとして登場したのがGoRouterです。 GoRouterはコンストラクタで指定するルート(Route)の集合体によって全体が制御され、管理されています。 また、ディープリンクやその他の一般的な画面遷移をすべて使いやすい API でサポートしています。 【実装フロー】 ①パッケージを追加 pub.dev ②MaterialAppをMaterialApp.routerに変更 class MyApp extends StatelessWidget { const MyApp({super.key}); @override…
ウィジェットは1つだけの機能に収めるべきという考え そうすることで応答性も高く再利用も可能になる 再利用が可能になることでコードの総数も減る 常に新しいウィジェットクラスを作ることで再利用が容易になる 応答性とは:画面のサイズが変わっても対応できる = デバイスやブラウザに依存しない 必要な作業はウィジェットのmaxサイズとminサイズを決めること また、2つのウィジェットを並べてレイアウトを画面サイズに合わせて変動するといった複雑な画面等も作れる 応答性についての参考資料 マルチプラットフォーム対応 最新フレームワーク Flutter 3入門 作者:掌田津耶乃 秀和システム Amazon
ウィジェットツリー内でのウィジェットの位置や UIがどのウィジェットに対応しているか見ることができる コマンドパレット→Dart Open DevTools in Browser マルチプラットフォーム対応 最新フレームワーク Flutter 3入門 作者:掌田津耶乃 秀和システム Amazon
SingleChildScrollView(children:) 複数の子ウィジェットをスクロールできる様にする scrollDirection: Axis.horizontal/vertical でスクロール方向を決める デフォはvertical 少数のデータを表示するのに適している(子ウィジェットを一度にビルドするため) ListView(children:) 複数の子ウィジェットを一列に並べる テキスト、画像、アイコン、その他カスタムウィジェット等異なる種類のウィジェットを含めることが可能 大量のデータを表示するのに適している → 動的に変わるリストを表示or項目数が多い場合に使用 Li…
コマンドパレットからflutterで検索しNew Project選択 若しくはターミナルでコマンド flutter create -t skeleton ↓ フォルダを選択して作成したら初期コメントを全削除: コマンドパレットからRemove All Comments 拡張機能はこちらを使用 マルチプラットフォーム対応 最新フレームワーク Flutter 3入門 作者:掌田津耶乃 秀和システム Amazon
Flutterの状態管理を行うStatefulWidget(若しくはStatelessWidget)の中身について今更ながら理解しました。 やはり一行、1コードずつ丁寧に理解を進めていくことが大事ですね。 以下の例を使って進めて行きましょう。 class ClassName extends StatefulWidget { const ClassName({super.key}); @override State<ClassName> createState() => _ClassNameState(); } class _ClassNameState extends State<ClassN…
概要 DartのImageライブラリを使えば、画像の切り抜きや合成、色味の編集、エンボス加工などさまざまな画像処理が行えます。 とはいえ用意されているメソッドは全てを網羅しているわけではなく、例えばクロマキーで透過画像を生成することなど、意外とできないことも多いです。 そのような用意されていないことをしたい場合にはバイト配列を取り出して自分で加工する必要があります。 公式のドキュメントには、画像から取り出した時のバイト配列の仕様など説明がなかったようなので、 本記事では、バイト配列を取り出して加工する方法について紹介します。 ※ 具体的な画像の加工アルゴリズムについてはここでは紹介しません。 …
今回も久しぶりの記事投稿です。 合わせてブログのデザインも変えてみました。2024年ですからね!! 本当は年末に書いておきたかった内容ですが、2024年を迎えてしまったので昨年の振り返りと今年の抱負の両方をまとめて書いていきます。
こんにちは、エキサイト株式会社の平石です。 エキサイトホールディングス Advent Calendar 2023の22日目を担当いたします。 OpenAPI仕様に基づいてAPIの仕様を定義したYAMLファイルから、アプリ用のDartコードを自動生成する際に、タグの指定で注意すべき点がありました。 実際に、APIとアプリ側の繋ぎ込みを行なう際に問題となったため、ブログとして残しておこうと思います。 OpenAPIとは タグに日本語は使わない方が良い? 終わりに OpenAPIとは 本ブログでは、Dartコードを自動生成する部分の説明は省きます。 以下で紹介されていますので、こちらもご覧ください。…
はじめに この記事は 10X アドベントカレンダー2023 11日目の記事です。 前日の記事は id:hisaichi5518 さんによる「“10xを創る”開発チーム文化とはなにか 〜お届けチーム編〜」でした。 こんにちは、今年の6月に10Xに入社して今はお届けチームでソフトウェアエンジニアをしているgenkey6です。 この記事では、お届けチームで直近取り組んでいるfeature flag管理サービスのLaunchDarkly導入に関する話をお届けします。 10XではServer Sideの開発言語としてDartを採用していますが、feature flag管理サービスを導入するにあたってSe…
Dart/Flutterでretrofit.dartを使って、 画像をダウンロードしたいなとおもい、いろいろ調べたときの備忘録(*´ω`*) アップロードはよく見るけど、ダウンロードはなかなかなくて困った。。 APIClientの定義 dioを直接使う形にすれば、 ファイルのダウンロードも対応できるっぽい @DioResponseType(ResponseType.bytes)をつける HttpResponse<List<int>>を返す part 'rest_client.g.dart'; @RestApi(baseUrl: "https://www.phoca.cz/") abstract…
Abbonizio J, Palermo C, Brand G, Buus N, Fossey E, Dart J. Co-designing formal health professions curriculum in partnership with students: A scoping review. Med Teach. 2024 Apr 15:1-12. Epub ahead of print. 背景:保健医療専門職教育(HPE)の設計、開発、提供において、学生との共同設計やパートナーシップの価値が証明されつつある。しかし、学生がHPEの共同デザインに参加する方法については、ほと…
今回は、DartとFlutterの入門ということで、基礎の基礎を解説していきます。それでは、一緒に学んでいきましょう! この記事で分かること ✅Dartの基礎✅Flutterの基礎 目次 はじめに DartとFlutterの概要 Dart言語入門 Dart言語の特徴 Dartの基本的な文法 変数とデータ型 制御構造(if文、for文、while文など) 関数とクラス コレクション(リスト、マップなど) Dartのパッケージ管理(pub) Flutter入門 Flutterの特徴 Flutterのウィジェットとレイアウト まとめ これらの知識を身につけることで、あなたもきっとスマホアプリ開発がで…
2025年7月5日地震は本当に起こるのか 真実はどこに? 2025年7月に大地震が発生するという噂は、多くの人々の関心を集めています。この予測は、過去に東日本大震災を予言したとされる漫画家・たつき諒さんの新たな作品と関連していると言われています。彼女は過去の予測が的中したことから注目を集めました。しかし、たつき諒さん自身は予知能力があると主張しているわけではなく、彼女の作品は自身の夢日記を元にしています。 地震予測には科学的な根拠が必要です。この記事では、2025年7月の地震予測に関する真実を探り、日本が地震大国としてどのように備えるべきかを考察します。 漫画家・たつき諒さんとは? たつき諒さ…
202404/6 - 2024/04/12 ・Firebase Crashlyticsの実装方法を調べた。解析方法や、どのように使っていけば、アプリの不具合解析、安定運用に繋がるかも調べたい。 ・LeetCodeの問題を解いた ・DB設計の本を読み進めた。読んだ本は、達人に学ぶDB設計。設計のアンチパターンや、DBのパフォーマンス改善について知ることができた。パフォーマンスについては、もう少し深い理解がしたいと思った。また、設計書のフォーマットについては書いてなかったので、別途調べたい。この記事が良さそう? ・プライバシーマニフェスト対応でFlutterを3.19.5にアップデートした際、--…
今回は、「Flutterを最近始めたよ!」という方や「Flutterとはそもそも何?」という方に向けて概要を簡潔にまとめてみました。これを読めば明日からFlutterについて語れます。笑 この記事で分かること ✅Flutterの概要 目次 はじめに:Flutterとは Flutterの歴史と開発 Flutterの主な特徴 Dart言語との関連性 Flutterの基本的な概念 Widgetsとは Stateとは Flutterの利点 クロスプラットフォーム開発の利点 高性能なUIの構築 豊富なパッケージエコシステム Flutterの成功事例 Flutterを学ぶための方法 まとめ:Flutter…
フーズボールは、大まかにフットボールに基づいた卓上ゲームです。ゲームの目的は、コントロール ノブを使用してボールを相手のゴールに移動させることです。フーズボール テーブルは、ゲームをプレイするための機器です。このフーズボールテーブル市場レポートは、世界の市場規模、収益、成長要因、制約、最新の業界パターン、および事業展開における完全な概要を推定されおり、 さらに、当レポートは、ロシアとウクライナの戦争状況をリアルタイムで追跡し、市場への最新影響もカバーしております。 当フーズボールテーブル市場レポートは、クライアント先に最新の市場動向と政策を提供し、隠れた新しい業務上の危険を回避できるように役た…
こんにちは、UPSIDERで日々モバイルアプリ開発をしているふっくです。 UPSIDERでは今後、よりアプリ開発に注力し決済プラットフォームの中核的な役割を果たすことを目指しています。 今回は、今後の開発・運用を目指して考えたFlutterアプリ向けのアーキテクチャを紹介します。 ネイティブアプリの世界で触れてきた色々なアーキテクチャ・フレームワークを参考に、開発の後半でも順調にスケールさせることができるように、工夫を凝らしました。 本アーキテクチャで作ったサンプルアプリもあるので、ぜひ以下のリンクから見てみてください。 https://github.com/upsidr/flutter_ar…
Flutterで多言語化したいなと思い、いろいろ調べてみたときの備忘録(*´ω`*) よくみるのはこんなコードだけど、 Locale locale = Localizations.localeOf(context); 日本語と英語のみをサポートしているときに、 簡体中文(デフォルト) 日本語 English みたいな感じの並びで、デフォルトが中国語の場合だと、 英語で表示してほしいけど、日本語が採用されてしまう。。 Localizations版の動き いろいろ試してみるとこんな感じっぽい Localizations.localeOf()はアプリでの表示言語を取得 MaterialAppのloc…
今回は、Flutterで「go_router」というライブラリを用いた画面遷移を実装するサンプルです。 Flutterでの画面遷移については以前も記事にしたことがありますが、その時はFlutter標準の「Navigator」を用いた方法について解説しました。 今回の記事では、Navigatorを使いやすく簡潔に実装できるようにしたライブラリである「go_router」についての説明となります。 この記事で分かること ✅「go_router」の使い方 目次 サンプル画面 サンプルコード 全文(main.dart) 実装手順の説明 ①「pubspec.yaml」に「go_router」を追加する …
はじめに はじめまして。キカガクプラットフォーム部のずんだです。 業務ではほぼ Next.js しか触ることがないのですが、最近なんとなく Flutter を触ってみていました。 どちらもモダンなフレームワークなので似ている点も多いのですが、結構違う点も多く面白かったです。 せっかくなので、Next.js ユーザー視点から見た違いや感動したところ、つまづいたところなど思ったことを書いていきます。 ※ 環境構築方法や具体的なコードの書き方については書きません。 対象読者 Next.js で開発したことがある Flutter とは 公式サイト: https://flutter.dev/ GitHu…
recordパッケージについて パッケージの追加 権限の追加 android/app/src/main/AndroidManifest.xml android/app/build.gradle AudioRecorderクラス 宣言 hasPermission start stop デモアプリ recordパッケージについて Flutterにおいて録音ができるパッケージの1つです。 参考:record | Flutter package パッケージの追加 dependencies: record: ^5.0.4 権限の追加 アプリがマイク機能を使用する権限を取得できるようにします。 andro…
今回は、4月5日~7日(Week 14)の好プレイを振り返ります。 目次 好試合 TB 7, COL 10 (Apr.5 @COL) BAL 4, PIT 5 (Apr.6 @PIT) MIA 10, STL 3 (Apr.7 @STL) 好守備 Apr. 5 CHC: ニコ・ホーナー Apr. 6 CLE: アンドレス・ヒメネス Apr. 7 CHC: ニコ・ホーナー 好打 Apr. 5 BOS: タイラー・オニール 1試合2本塁打 Apr. 7 MIL: ウィリアム・コントレラス 1試合2本塁打 好投 Apr.6 LAA: リード・デトマーズ 12奪三振 Apr.7 TB: ライアン・ぺピ…
スマレジで Web 系エンジニアとして働いている やまて(@r_yamate) と申します。 テックファームという SES 部署に所属していますが、2023 年 4 月からは、スマレジの関連アプリの開発業務を担当しています。 Flutter(Dart、Kotlin)でのアプリ開発をメインで担当しており、React の一部機能の実装をすることもあります。 開発しているアプリがついにリリースされ、利用していただく日を楽しみにしています。 はじめに 今回は、 #ミノ駆動本 こと 『良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方』の「第3章クラス設計 ―すべてにつながる…
探査機をぶつけた惑星が火星に衝突かについて 探査機をぶつけた惑星が火星に衝突か 2023年9月26日、NASAの探査機DARTは、小惑星ディモルフォスに衝突し、その軌道をわずかに変化させることに成功しました。これは、将来地球に衝突する可能性のある小惑星を軌道から逸らすための技術実証実験として大きな成果を収めました。 しかし、この画期的なミッションの裏側で、思わぬ事態が発生していたのです。DARTの衝突によってディモルフォスから放出された破片の一部が、火星に衝突する可能性が出てきたのです。 衝突の可能性は現時点では推定であり、今後の詳細な分析が必要です。しかし、もし衝突が実現した場合、火星への影…