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
はじめに こんにちは、エムティーアイ Advent Calendar 2024 の12月18日分の執筆を担当させていただく新卒エンジニアの小林です。 今回は、前回の【Flutter】BottomNavigationBarの状態管理方法3選の番外編として、GoRouterを使ってBottomNavigationBarの画面切り替えを行う方法についてご紹介します。 GoRouter導入済みのFlutterプロジェクトでBottomNavigationBarを追加する際、GoRouterによってBottomNavigationBarによる画面切り替えを実現する方法について検証を行なった内容についてま…
こんにちは。エキサイトでアプリエンジニアをしている岡島です。エキサイトホールディングス Advent Calendar 2024の17日目を担当させていただきます。 最近Dart 3.6がリリースされたので、Dart 3.6について見ていきたいと思います。また、DartのCHANGELOGで、Dart 3.7.0で追加される言語機能が紹介されていたので、まとめていきたいと思います。 Dart 3.6の新機能 Pub workspaces機能 pub.devのダウンロード数表示 Digit Separators Dart 3.7で追加予定の機能 ワイルドカード変数 (Wildcard Varia…
この記事は虎の穴ラボ Advent Calendar 2024の10日目の記事です。 こんにちは、虎の穴ラボFantiaエンジニアの吉岡です。 今回はDartに試験的に導入されているマクロの機能について触ってみようと思います。 注意点として、Dartのマクロはまだ開発中の機能でありDartのバージョンが3.4以上であることやFlutterはまだ未対応など制限が多くあります。 マクロ機能とは Dartのマクロ機能はコードの生成や拡張といったメタプログラミング手法を提供する機能になります。 マクロを利用することで、コンパイルしたタイミングで指定したクラスに任意のコードが生成、拡張されます。 これに…
はじめに こんにちは、エムティーアイ Advent Calendar 2024 12月10日分の執筆を担当させていただく新卒エンジニアの小林です。 今回は、FlutterのBottomNavigationBarの状態管理方法について3種類の方法を紹介します。 公式ドキュメントのBottomNavigationBarをベースに、それぞれの状態管理方法のサンプルコードを載せているため、BottomNavigationBarの状態管理方法のカタログ集のように使っていただけますと幸いです。 BottomNavigationBarとは何か BottomNavigationBarとは、アプリの画面下部に配…
こんにちは! 2024 年新卒入社、アプリ開発支援部の涌井と小林です。 先日、FlutterKaigi 2024 に参加してきましたので、その内容をレポートします。 ※この記事は、アドベントカレンダー12月4日分の記事です。 qiita.com 目次 FlutterKaigi の概要 参加した経緯 セッション ネットスーパーがスクリーンリーダーに対応した話 〜あるいはアクセシビリティ向上によるユーザー獲得〜 Effective Form ~ Flutter による複雑なフォーム開発の実践 ~ Flutter と難読化 Figma Dev Mode で変わる!Flutter の開発体験 Flut…
こんにちは、エキサイトでアプリエンジニアをしている岡島です。 今回はDartを用いて、定期的に関数を実行したい時にどうすればいいか、Timerを用いた実装を紹介していきます。 はじめに Timerの基本的な使い方 一度だけ実行する場合 一定間隔ごとに実行する場合 Timerを停止する まとめ はじめに 開発をしていると、定期的にAPIからデータを取得したい場合のように、特定の関数を一定間隔おきに実行したいケースがあります。そのような時に、DartのTimerクラスを活用することができます。 Timerの基本的な使い方 一度だけ実行する場合 Duration(seconds: 〇〇)というように…
こんにちは、エキサイトでアプリアンジニアをしている岡島です。 今回は、BuiltListを使う機会があったので、調べたことについて共有したいと思います。 BuiltListとBuilt Collectionについて Dartで注意が必要な参照渡し BuiltListで参照渡しの問題を防ぐ Built Collectionの特徴 変更不可(Immutable) 比較可能(Comparable) ハッシュ可能(Hashable) nullを拒否(Reject nulls) ジェネリクス型パラメータが必要 間違った型の要素を拒否(Reject wrong-type elements) 不要なコピーを…
こんにちは。エキサイトの岡島です。今回はカスケード記法(Cascade notation)についてご紹介していこうと思います。 業務中に誤ってカスケード記法を用いてmapの操作を行なっており、期待した動きにならなかったので自戒の念をこめてこの記事を書いています。ドット(.)1つの違いで思わぬ事態が起きてしまったので気をつけたいです。 カスケード記法(..)とは カスケード記法でmapの操作を行うときには注意 操作が反映されない具体例 なぜこの様なことが起こるのか まとめ カスケード記法(..)とは カスケード記法(..)を使用すると、同じオブジェクトに対して複数の操作を連続して行うことができま…
ゲームエンジンぽいもの Flutterでピクセルパーフェクトぽいものを実現する簡易的なゲームエンジンを作りました。 数年前からやりたいなと思いつつ放置してたやつ。飽きなければ整理して公開もしたい。 Flutterのその他Widgetと共存可 Widgetツリーの中にゲーム画面を埋め込み可能 PSやSwitch系コントローラー対応 自前でWin32APIを叩いた 指定したフレームレートを維持する制御 Flutterのデフォ機能では60hzディスプレイなのになぜか秒間90回ほど描画されるクソ動作だったので、高精度タイマーなど使いつつ自前制御。でもいくら時間制御を正確にして描画イベント発火させても、…
Flutter では geolocator を使ってバックグラウンドでの位置情報を取得することができます。そのためには権限を取得する必要がありますが、Android と iOS では単純にその権限を取得することができません。この記事ではその仕様のややこしい点について説明します。
2025年1月3日に、QYResearch株式会社(所在地:東京都中央区)は「使い捨て蓋―グローバル市場シェアとランキング、全体の売上と需要予測、2025~2031」の最新調査資料を発行しました。本レポートでは、世界の使い捨て蓋市場規模、市場動向、成長予測を詳細に分析し、今後の市場の変化と発展方向を見通します。使い捨て蓋市場を製品別、用途別、地域別に分類し、各セグメントにおける売上、市場シェア、成長トレンドを明確にします。主要企業の紹介、売上、最新の開発状況、および競合環境に関する詳細な分析を提供します。また、市場成長を促進する主な要因と業界が直面する課題を分析し、将来の市場機会を予測していま…
2025年1月2日に、QYResearch株式会社(所在地:東京都中央区)は「紙パルプベースの使い捨て食器―グローバル市場シェアとランキング、全体の売上と需要予測、2025~2031」の最新調査資料を発行しました。本レポートでは、世界の紙パルプベースの使い捨て食器市場規模、市場動向、成長予測を詳細に分析し、今後の市場の変化と発展方向を見通します。紙パルプベースの使い捨て食器市場を製品別、用途別、地域別に分類し、各セグメントにおける売上、市場シェア、成長トレンドを明確にします。主要企業の紹介、売上、最新の開発状況、および競合環境に関する詳細な分析を提供します。また、市場成長を促進する主な要因と業…
2025年1月2日に、QYResearch株式会社(所在地:東京都中央区)は「紙コップ―グローバル市場シェアとランキング、全体の売上と需要予測、2025~2031」の最新調査資料を発行しました。本レポートでは、世界の紙コップ市場規模、市場動向、成長予測を詳細に分析し、今後の市場の変化と発展方向を見通します。紙コップ市場を製品別、用途別、地域別に分類し、各セグメントにおける売上、市場シェア、成長トレンドを明確にします。主要企業の紹介、売上、最新の開発状況、および競合環境に関する詳細な分析を提供します。また、市場成長を促進する主な要因と業界が直面する課題を分析し、将来の市場機会を予測しています。 …
random notes Cocoapods is required if you need to install dependencies Row is a subclass of Flex → needed to add mainAxisSize: MainAxisSize.min to place the widget in the center of screen Apple developer の登録 個人→法人の切り替えもできるらしい。ただしサポートとメールのやりとりが必要 メアドの変更は可能 法人で登録する場合は DUNS の取得と Apple からの電話に出る必要がある 広告 …
はじめに 使用例 pubspec.yaml ソースコード はじめに go_routerパッケージについて、相対パスでの移動がバージョン14.6.0から実装されたので、その使い方を紹介します。 Changelogには Allows going to a path relatively by prefixing ./ と書かれているので、「./」を使って下の階層へ移動ができそうです。 使用例 pubspec.yaml バージョン14.6.0以降のgo_routerを追加します。 dependencies: go_router: ^14.6.0 ソースコード ホーム画面(HomePage)をパス「/…
こんにちは〜 今年もデカ晦日に振り返り記事です。お昼ご飯食べた後に書いてます。今回で7回目! 2024年の振り返り 仕事 個人開発 PikaPika(iOS、Android) OnePage(iOS、Android) プライベート 家族 健康 ゲーム Switch Play Station 2025年の目標 最後に これまでの振り返り記事一覧 2024年の振り返り 仕事 今年も去年に引き続き受託開発をメインに、リードエンジニアとして開発に携わりつつ、プレイングマネージャー的な役割で開発を進めました。 プロジェクトの全体のことを考えつつ開発も進めるのは大変ですな。 自社開発では「めでた!」を4月…
2024年の振り返り ざっくり振り返ろうと思います Steamにハマる qureateのゲームにハマってました、バニーガーデンもですがメイド・オブ・デッドの出来が非常に良くて個人的に大好き、ヴァンサバライクゲーってことで大本のヴァンサバ買ったぐらいハマりました "エロ”ゲーでは無いですが、遊べる系のバカお色気ゲーは昔から好きなので普通にあり s.team Muv-Luv Alternative (マブラヴ オルタネイティヴ) いやもう圧倒的なプレイ時間割いてますね、面白かったです 武ちゃん強いぜ!このままBETAぶっ倒して行こうぜ!からの知っててまりもちゃんショックと純夏ショックは本気で辛かっ…
2024年がもう終わるので、総括。 仕事 引き続き、自分の会社をやってる。今月より5期目に突入。4期目については、3期目より増収かも。まだ4期目の決算終わってないからよくわからん。 5期目についてはありがたいことに見えている新規案件も今までより多く、今年出会ったお取引先の皆様には本当に感謝してもしきれない。 技術的なことでいうと、今年はSupabaseとたくさん触れ合った1年だったと言える。Supabaseって、複雑なビジネスロジックが無いシンプルなアプリのバックエンドとしてであれば、本当にサクッと、ランニングコストが安く走り出すことができて、すごい。ただし、正しく使いこなしていくには非常に難…
マサロが手がけるシャネルのシューズ は、靴型の制作からアッパーをソールに縫い付ける作業まで、すべての工程が手作業で行われ、エレガンスと快適さを追求してきました。1957年、ガブリエル シャネルの象徴的なバイカラー シューズの誕生からスタートしたシャネルとマサロのコラボレーションは、すべてのショーを経て現在に至るまで続いています。マサロは2002年にシャネルのメティエダールに加わりました。 常に新たなシェイプや素材を追求し、熟練した技術で形にする靴のアトリエ、メゾン マサロ。マドモアゼル シャネルが1957年にデザインしたアイコニックなバイカラー シューズの製作を担い、2002年にメティエダール…
2024年12月24日に、QYResearchは「ヘリコプター緊急フロートシステム―グローバル市場シェアとランキング、全体の売上と需要予測、2024~2030」の調査資料を発行しました。本報告書は、ヘリコプター緊急フロートシステムの世界市場を分析し、主要企業の総売上高、収益、価格、市場シェア、ランキングなどを掲載しています。また、地域別、国別、製品タイプ別、用途別に市場を分析しています。2019年から2030年までのヘリコプター緊急フロートシステムの市場規模を販売量と売上高に基づいて推計と予測しています。企業が事業成長戦略を策定し、競合状況を評価し、市場ポジションを分析し、ヘリコプター緊急フロ…
この記事は hacomono advent calendar 2024 の24日目の記事です こんにちは。hacomono 新規事業開発室に所属している teru です。モバイルエンジニアとしてモバイルアプリの開発をメインで担当しています。 健康維持やリフレッシュを目的として10年間以上ジム通いを続けています。今年は週2〜3回ペースでジムに通ってきましたが最近寒さが厳しく週2回を維持するのが精一杯な状況のため、寒さに負けないよう気持ちを引き締めていこうと思っています。 はじめに hacomono では お客様が店舗をご利用される際、店頭に設置された iPad にメンバーサイト上に表示されるQR…
flutter多言語対応の導入メモ。 Packageのインストール $ flutter pub add flutter_localizations $ flutter pub add intl:any ファイル設定 pubspec.yaml で、 generate フラグがtrueでない場合は設定します flutter: generate: true プロジェクトルートに l10n.yaml を新規追加し、localizationに関するファイルの指定をします arb-dir: lib/l10n # 各種言語ラベルを指定するarbファイルの置き場所 template-arb-file: app…
今年も時系列順にまとめつつ、いくつかトピックをピックアップして振り返りをします。 1年間の振り返り 1月 会社の研修の関係で昨年末まで名古屋に居て、年末に東京に帰ってきました。1月は元の業務に戻りつつ東京の生活を取り戻していく時間でした。1月1日に地震があったりもして、変化の中の区切りのようなものを静かに感じていました。 1月の末には sechack のイベントもあって、色々と刺激を受けたので生活を落ち着けて2月からは何かやりたいなとこの頃は思っていました。 東京は人がいっぱいいて狭くてうるさくてずっと嫌いだったんですが、去年東京で過ごしながらだんだんそれが変わっていて、人混みが個人を溶かして…
2024年12月23日に、QYResearchは「浮選と膨張式システム―グローバル市場シェアとランキング、全体の売上と需要予測、2024~2030」の調査資料を発行しました。本報告書は、浮選と膨張式システムの世界市場を分析し、主要企業の総売上高、収益、価格、市場シェア、ランキングなどを掲載しています。また、地域別、国別、製品タイプ別、用途別に市場を分析しています。2019年から2030年までの浮選と膨張式システムの市場規模を販売量と売上高に基づいて推計と予測しています。企業が事業成長戦略を策定し、競合状況を評価し、市場ポジションを分析し、浮選と膨張式システムに関連する情報に基づいてビジネス上の…
2024年12月23日に、QYResearchは「磁気チップ高精度検出器―グローバル市場シェアとランキング、全体の売上と需要予測、2024~2030」の調査資料を発行しました。本報告書は、磁気チップ高精度検出器の世界市場を分析し、主要企業の総売上高、収益、価格、市場シェア、ランキングなどを掲載しています。また、地域別、国別、製品タイプ別、用途別に市場を分析しています。2019年から2030年までの磁気チップ高精度検出器の市場規模を販売量と売上高に基づいて推計と予測しています。企業が事業成長戦略を策定し、競合状況を評価し、市場ポジションを分析し、磁気チップ高精度検出器に関連する情報に基づいてビジ…