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
こんにちは。エキサイト株式会社でアプリエンジニアをしている岡島です。 今回はDartのenumとsealedクラスについて勉強したことをまとめていこうと思います。 環境 enumのパターンマッチング 基本的な使用例 enumの網羅性チェック sealedクラスのパターンマッチング 基本的な使用例 サブクラスの構造に基づいたパターンマッチング sealedクラスの網羅性チェック 最後に 環境 Dart: 3.4.0 enumのパターンマッチング 基本的な使用例 enum Weather { sunny, rainy, cloudy } String getWeatherAdvice(Weathe…
こんにちは決済認証システム開発事業部の冨永です。 普段はiOS・iPadアプリ開発を中心に業務に携わっており、ゴリゴリのSwift愛好家です。 業務上、iOS・Android両プラットフォームの開発を効率化する際に、 クロスプラットフォーム対応のフレームワークであるFlutterの選択肢があるかと思います。 FlutterではDartという言語が使われていますが、Swift経験者がDartを学ぶ際に、 「SwiftでいうXXXってどうやって実装するのだろう」 という疑問が度々生じました。 今回はクラスに焦点を当てて、整理した記事になります。 iOS開発経験者がFlutterに興味を持つきっかけ…
どうも、株式会社YOUTRUSTのアプリ開発のリードエンジニアをやっているashdikこと朝日(YOUTRUST / X)です。 最近は、以前お話ししたTHE BLACKLISTを見終わり、 2周目に突入しました笑 さすがに長すぎるので1.5倍速で見てるのですが、「こんな人いたなぁ」「本当は、悪いやつなのに全然悪い顔してないなぁ」なんて思いながら見ててこれはこれで楽しいです。 そして、話は変わり、個人所有のボードゲームは150個を超え、そろそろ店開きなよと言われる事が多くなってきましたw 最近のお気に入りはIT'S A WONDERFUL WORLDです。 ⚓️ 概要 以前、YOUTRUSTア…
TL;DR Flutter (Dart) でモバイルアプリを作っていたとき、Listの型キャストで以下の様に詰まった。 やりたいこと:List<子クラス>→List<親クラス>→List<子クラス>の型キャストをしたい。 問題:List<親クラス> → List<子クラス> の時点で汎化→特化ができないため、エラーが発生する。 解決策:Listの要素を一つ一つas 子クラスでキャストする。 Listにすると型キャストがややこしくなるんだなぁ。 問題の詳細 Flutterでアプリを作っていて、いろいろあってList<子クラス>→List<親クラス>→List<子クラス> という型キャストを実行す…
はじめに こんにちは。エキサイト株式会社でエンジニアをしている新卒の岡島です。 普段業務ではFlutterを用いたアプリ開発を行っています。 今回は、業務中にenumについて学んだことがあるので、勉強したことも含めて共有していきたいと思います。 私は、列挙型は単に列挙するだけだと思っていたのですが、想像以上に奥が深くて勉強になりました。前半では公式ドキュメントでの言語仕様を確認し、後半ではenumの使用例について書いていこうと思います。 はじめに 列挙型(enum)とは? 環境 Dartでのenumの定義 シンプルなenum enhanced enums enhanced enumの要件 en…
こんにちは。pregum_foxです。 今回はdriftの使い方についていくつか自分が調べて情報がなかった箇所についてtipsとして書いていこうと思います。 以下目次です。 検証環境 サンプルで作成したリポジトリ set up primaryKeyをuuidにする方法 外部キーの有効化 外部キー制約の定義方法(CASCADE / RESTRICT 等) 中間テーブルを含むDB操作 マイグレーション方法 serializer(DataTimeをISO8601形式にする) toJsonで出力されるMapのkeyをキャメルケースからスネークケースに変える drift_db_viewerの使い方 シン…
近況報告になるが、去年末から本業仕事でIoT系プロジェクトに関わっていたが、最近それが一段落した。この仕事のターゲット機はESP32を搭載しているが、小生はそのファームウェアの開発を行った。また、AWS上で稼働するNestJSベースのWebアプリ・サーバープログラムの改造も手伝ったりした。こちらで得た技術知見もブログ記事に書いていこうと思っている。 本業に復帰する前の一昨年から去年前半まで(コロナ禍の最盛期)はIT開発は副業としてやっていたが、主に関わっていたのはスマホアプリ開発でフレームワーク(プログラミング言語)はFlutter(Dart)を使っていた。Flutterを好んで使っていたのは…
ゴールデンウィーク中に書いているコードで、DNSクエリを一から書いてみるかということで雑に実装したコードを残しておきます。 ちゃんとした仕様通りの実装をしているわけではないので解説はしませんが、UDP通信したい人や別のものを参考にする場合には利用できるかもしれません。 実行する場合には dart main.dart zuki.dev A のように指定すると動作します。 import 'dart:convert'; import 'dart:async'; import 'dart:io'; import 'dart:typed_data'; class RecordType { final i…
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
◆このページを読むのにおすすめな人◆ コロナが落ち着き、そろそろ久しぶりに海外旅行に行きたい人 仕事の休みが取りにくく、3連休2泊3日の短期間でも海外旅行をしたい人 定番の国から穴場まで、連休で行ける海外の国を知りたい人 このページで紹介する内容は、、 【2泊3日で旅行できる、おすすめ海外旅行17カ国】 【2024年最新】3連休2泊3日で行ける海外旅行先17カ国! 週末の弾丸旅行におすすめな定番〜穴場な国の観光実体験をもとに紹介!
長らくお待たせしちゃいました。ついに完結です。すでにPart1&Part2を読んでいて、続きから、と言う方は(146)からどうぞ。 実は私がこの作品を知るのが遅れていたら、この翻訳は成立していなかったでしょう。本日、掲載誌を無料公開していた某Archiveを確認したら、公開中止となっていました… この作品を絶妙なタイミングで教えてくださった おっさんさま、いつも暖かい眼差しで校正してくださった 虫暮部さま(146以下も出来ましたら…)、ありがとうございました。最後にネット翻訳界の巨人 牟野素人さま、励ましのお言葉に感謝です! リチャード・コネル(英Wikiより) A Flash of Ligh…
Webフロントエンド開発において、どのような方法でスタイリングを行うかは常に議論の的です。 CSSの記述方法は多様化しており、フレームワークやライブラリなど、さまざまな選択肢が存在します。 さらに、毎年のように新しいものが登場し、技術選定を行う開発者を悩ませています。 今回は、Webフロントエンド開発において広く利用されている、CSSプリプロセッサーのSassに焦点を当て、Sassが好きな理由を紹介します。 この記事を読んでくださる方に新たな視点や選択肢を提供できれば幸いです。 著者について Findy Engineer Labをご覧の皆さまはじめまして。 鳥山らいか(@pvcresin)と申…
概要 Flutterで、Riverpodを使うための基礎的なことの自分用メモ。 概要 背景と目的 詳細 0. インストール 1. 前提を整理 1. フォルダ分け 2. ビュー 3. ステート 4. ロジック 5. main.dart まとめと今後の課題 背景と目的 Flutterでは、状態管理の実現方法はいろいろあるが、 ビュー、ロジック、ステートの分離 ステータス変数へのグローバルなアクセス を実現する方法として最も用いられていると思われるRiverpodを使いたい。そこで、Riverpodを使用するための基礎的なことの自分用にメモする。 詳細 0. インストール flutter pub a…
どうも、株式会社YOUTRUSTのアプリ開発のリードエンジニアをやっているashdikこと朝日(YOUTRUST / X)です。 最近は、任天堂Switchで有名な「Slay the Spire」のボードゲーム版にどハマりしております。 Slay the Spire アセンション4クリア時 原作は一人用なのですが、ボードゲームでは4人までの協力が出来る様になっています。 僕は一人で、協力しています。 ...あれ、目から汗が。 ⚓️ 概要 気を取り直して、今回と次の記事では弊アプリで使っているパッケージとその用途を一挙にご紹介します。 中規模以上のアプリでどんなパッケージがどんな風に使われている…
compute関数内でグローバル変数を使うとうまく動作しないことに気づきました。 import 'package:flutter/foundation.dart'; int globalint = 0; void main() async { print('main1 globalint ' + globalint.toString()); globalint = 10; await callBinderInBackground(); print('main2 globalint ' + globalint.toString()); } void performCall(String para…
概要 Flutterで、ルーティング基礎をメモった。 概要 背景と目的 詳細 1. 作りたいもの 2. コーディング 2.0 画像ファイルの準備 2.1 pubspec.yaml 2.2 main.dart 3. 動作確認 まとめと今後の課題 背景と目的 先日からFlutterによるアプリを作成していたのだが、それは1つの画面で完結するものだった。しかし、今後のアプリにおいては複数の画面間を遷移する必要があるため、画面のルーティングについて基礎的な部分をメモしておく。 詳細 1. 作りたいもの 起動画面から開始して、一定時間後にアプリのメイン画面に遷移する。起動画面には、アプリアイコンと、バー…
開発中のアプリでデータ共有で招待QRコードを発行して、スキャンでゲストログインできる仕組みを実装したので記事化 PR github.com 実装の概要 backend/アプリのゲストログインの実装 ゲストユーザーログインのトークンを発行してHeaderに設定して認証するミドルウェアを実装 QRコード作成/スキャン QRコード作成: qr_flutter QRコードスキャン: mobile_scanner QRコードをスキャンした時にアプリに指定の動作をさせる iOS: ユニバーサルリンク Android: アプリリンク 上記のリンクからアプリを起動するためのURLスキーム設定: go_rout…
プログラミング言語の世界は、1950年代から現代までにわたり驚くべき進化を遂げてきました。科学技術計算からビジネスアプリケーション、そしてウェブやモバイル開発まで、各時代に登場した言語は、それぞれの時代のニーズに応じて進化してきました。本記事では、主要なプログラミング言語について、その開発者、特徴、そして簡単なコード例を交えながらその歴史を振り返ります。これから学び始める方にも、経験豊富なエンジニアにも、新たな発見があるかもしれません。 プログラミング言語概覧 1950〜1960年代 FORTRAN(1957) LISP (1960) COBOL (1960) ALGOL (1960) BAS…
FlutterでRiverpod と Flutter Hooks を組み合わせて使う方法についてまとめました。 はじめに インストール Flutter Hooksを使ったアプリケーションを作る Riverpodを使ったアプリケーションを作る Flutter HooksとRiverpodを組み合わせる Consumerを使うケース 関連 参考
こんにちは、エキサイトでアプリエンジニアをしている岡島です。 今回は、ListViewなどスクロールができるウィジェットのphysicsついてまとめていこうと思います。 Scrollableなウィジェット physicsについて AlwaysScrollableScrollPhysics BouncingScrollPhysics ClampingScrollPhysics NeverScrollableScrollPhysics RangeMaintainingScrollPhysics 最後に Scrollableなウィジェット Flutterには、スクロール可能なウィジェットがいくつか用…
MARU×MARU情報局です。 3回に分けてご紹介しております【湯布院別邸 樹(ITSUKI)】情報。 本日は第3回、最終回です!!! ~ 由布院産にこだわり抜いた朝食&周辺観光 ~情報をお届けいたします。 過去2回の記事も合わせてお読みください。第1回:お部屋&温泉の紹介 ~ 心が和む極上の空間編 ~ www7.ikutanpapa.com 【湯布院別邸 樹(ITSUKI)】のお部屋、温泉、夕食を大満足した我々家族3人。 いよいよチェックアウトの朝を迎えました。 朝8:00に朝食を予約している我々は、眠い目をこすりながらレストランへ向かいます。 朝食も夕食と同じ『DINING十和蔵』で食しま…
Flutter 3.24.2, Windows 11 (2024年9月頃)ヘルプを表示 flutter help create flutter help pub add flutter help runプロジェクトを作成 flutter create my_test --platforms windows --template app --emptyプロジェクトのフォルダに移動 cd my_test依存関係をpubspec.yamlに追加 flutter pub add file_selectormain.dartをメモ帳で編集 notepad .\lib\main.dart// main.d…
2024年9月6日に、QYResearchは「使い捨ての紙皿―グローバル市場シェアとランキング、全体の売上と需要予測、2024~2030」の調査資料を発行しました。本報告書は、使い捨ての紙皿の世界市場を分析し、主要企業の総売上高、収益、価格、市場シェア、ランキングなどを掲載しています。また、地域別、国別、製品タイプ別、用途別に市場を分析しています。2019年から2030年までの使い捨ての紙皿の市場規模を販売量と売上高に基づいて推計と予測しています。企業が事業成長戦略を策定し、競合状況を評価し、市場ポジションを分析し、使い捨ての紙皿に関連する情報に基づいてビジネス上の意思決定を行うのに役立つ定量…
こんにちは、iOS チームの池沢と申します。 最近「鎌倉殿の 13 人」を見返していますが、やはり最高の大河ドラマだと思います。 上総広常の最後のシーンは、今後も何度も見返すんだろうなと思います。 大河ドラマの話はさておき、今回は私が先日まで行っていた Flutter での機能開発の話を書こうと思います。 他のエンジニアからも時々聞かれる話ですので、イメージしやすい話になっていれば幸いです。 背景 ジモティーではゴミの削減やリユースの促進を目的に、自治体と連携しながらリアル店舗(ジモティースポット)の運営を行っております。 先日この取り組みをさらに加速させていくため、初の大型店舗を神奈川県川崎…