サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
ntaoo.hatenablog.com
www.youtube.com 2013年のプレゼン。ここでのYouは、このプレゼンの聴衆である言語研究コミュニティを指している。以下視聴メモ。 Why JavaScript Programmers Hate You: an ode to dynamic languages, Jan Vitek 型は生産性を上げるいう伝統的な信念がある。静的型付けは、より良いものだと。目標は正しさ。 その伝統的信念に反して、実世界では、動的型付け言語がデザインされ続けてきた。VB, Python, R, Lua, Java (= static + dynamic), JavaScript, PHP, Ruby, Clojure。 Adobe Lightroomは、大半のコードがLuaで書かれている。簡単に書けるし組み合わせることができるから。スウェーデンで500万人の顧客が利用するペンションの管理システム
Web特有の事情はどう解決するのかに興味があって内部構造などを調べていた。 開発が進むにつれて実装はどんどん進化して問題解決されていくだろうし、現段階のこの情報の正確性も保証しない。個人のメモを公開しているだけなので鵜呑みにはしないようにしてほしい。 あと、Preview版が公開された後にFAQが追加されているので読んでおくほうがいい。 https://github.com/flutter/flutter_web/blob/master/docs/faq.md ニュース まとめ https://medium.com/flutter/a-roundup-of-flutter-news-at-google-i-o-453bb3249981 Flutter Webの開発体験とPreview版段階の技術的制約についての解説 https://medium.com/flutter-nyc/under-
Pragmatic State Management in Flutter (Google I/O'19) Flutterで状態管理をする方法についてのセッション。去年も同じペアで同じテーマのセッションがあった。 https://www.youtube.com/watch?v=d_m5csmrf7I&list=PLjxrf2q8roU2no7yROrcQSVtwbYyxAGZV&index=4&t=0s ひとつのWidget Treeしかないなどの単純なアプリの場合をのぞき、アプリの状態管理は重要な問題となる。 Agenda 状態管理の重要性 さまざまな取り組みの推移 Flutterでの実践的な状態管理方法 論点 理解しやすく読みやすく保守しやすいこと テストしやすいこと 実行性能(パフォーマンス)が高いこと 残念ながら万能の解決策はないので、あなたのユースケースのなかでエッジケースを考慮
2019年初に2018年のDartを振り返ってみる。僭越ながらDart advent calendar 25日目の記事だが、大幅に超過して新年になってしまった。申し訳ない。そして大した内容ではない。個人の回顧です。 Dart 2のリリースと、Dart 1の回顧 Dart 1を回顧するに、以下の特徴をもった言語だったと思う。 VMを活かした動的言語であること VM前提の動的言語の表現力、進化を妨げないための、選択換装可能な型システム (言語が型システムに依存するのではなく、型システムが言語に依存する) エディタ、デバッガ(等々)が統合された開発体験などの、Smalltalkを目標とした環境の提供(が目標) ライブラリや開発環境などを整備し、言語のカタログスペックでなく実際のDeveloper Experienceが優れていること 世の中の圧倒的多数を占めるCとJavaのプログラマーに学習コス
Dartアドベントカレンダー14日めの記事 Flutter経由でDartの魅力に気づいた人が増えてきているので、ここでAngularDartにもすこしでも興味を持ってもらって、使い始める人が増えると嬉しいと思い、この記事を書いた。 網羅的な解説をする余裕がないので、覚え書きの質で書きちらす。また、具体的な機能の特徴をコードを交えて解説するものではない。それに関しては、https://webdev.dartlang.org/を参照されたい。 なお、よく知られたTypeScript版のAngularとの比較が多くなるため、ここでは便宜的にそれをAngularTSと呼称して、AngularDartと区別する。 Hummingbird (Flutter Web)が発表されたけど Hummingbird (Flutter Web)が発表されたが、まだオープンソースにもなっておらず評価するには早すぎる
本日のFlutter Liveのキーノートでは、Flutter 1.0 GA化を始め、たくさんのエキサイティングな発表がされたが、その中でも一番の驚きは、このキーノートの最後の、FlutterでWebアプリを開発可能にするという、Hummingbirdの発表だろう。 Hummingbird GAの次の構想として、AndroidとiOSに加えて、Windows, macOS, ChromeOS, ラズベリーパイなどのネイティブ環境での統一したUIツールキットとなる構想が発表されたことは予想の範囲内だが、Webアプリに関してはWebブラウザーという独特の環境で制約が強いため、Webアプリまでを対象にする構想がこの日に明らかにされたことは全く予想外だった。 これによりFlutterは、モバイルアプリ用途を超えた、モバイルOSでもデスクトップOSでもWebブラウザーでもシングルコードベースで動作す
公式ではなくコミュニティベースのソリューションだが、興味深い記事だったので紹介。 https://medium.com/flutter-community/flutter-on-desktop-a-real-competitor-to-electron-4f049ea6b061 以下、上記記事の要点。 Androidエミュレーターを立ち上げないので、開発速度は更に高速。 デスクトップアプリなので、当然ウインドウは可変。まるでWebブラウザのような感覚のレスポンシブデザイン。もちろんウインドウの枠をドラッグで自由に変更できる。 Hot reloadingとdebuggingも従来どおり可能。 RAMの使用量に圧倒的な差。エミュレーターは1GB使うのに対し、こちらは100MB。 Androidエミュレーターでもデスクトップのウインドウでも動くChatデモの動画あり。 ホバーやカーソルの種類の変
Mixinに馴染みがない人が多いようなので、解説する。 Mixinとは Mixinとは、fieldやproperty, slotなどと呼ばれている状態 (state)、およびmethodなどと呼ばれている振る舞い (behavior) の集合を定義し、それをclassに適用して拡張するもの。関数スタイルのプログラミングにおける関数の合成のように、classを合成する。 主に、Classベースのオブジェクト指向言語において、(単一)継承の階層という制約では表現することが難しいデザインには、Mixinを適用する。 主な言語における採用事例 Racketなどの、Lisp familyの一部 Smalltalk family Scala Ruby Sass 言語レベルで採用していたり(Dart, Scala, Ruby等)、あるいはデザインパターンのひとつとして紹介されていたり(JavaScrip
Dart 2.1がリリースされた。 https://medium.com/dartlang/announcing-dart-2-1-improved-performance-usability-9f55fca6f31a Flutterからのユーザーフィードバックからの改善が中心という印象。 Dart 2.0において、数年に渡り開発チームがかかりきりになっていた、型安全性を強めた型システムの安定版がリリースされたため、これからはよりマイナーな改善に注力していくと思われる。 Dart 2ではクライアントサイドのユースケースに注力していくとアナウンスされたとおり、WebアプリとNativeアプリ両方の生産性を高めていくことが強調されている。 Flutterは無事離陸できた感があるので、WebアプリとしてAngularDartのパフォーマンスと生産性の魅力がもう少し知られたら良いし、そしてもし取り
FlutterのウリのひとつであるHot Reload、この体験がAngularDartでも可能となっていた。WebでもHot Reloading。 dartファイルの編集 htmlファイル(angular template)の編集 cssの編集 これで、とくにHTMLとCSSの編集がかなり捗るようになる。 --hot-reloadオプションをつけて起動するだけで、その他の設定を変えずに有効になった。 webdev serve --hot-reload 従来のLive Reloadでは、コードの編集からブラウザのリフレッシュを経てのコードの反映までに5秒から10秒かかり、ブラウザのタブがリロードされることでランタイムの状態が一新されていたが、Hot Reloadでは0.5秒から2秒くらいで差分更新され、その他のランタイムの状態が維持される。 ただしまだ不安定な印象。手元のかなり大きなコード
やりたいことは以下の動画のとおり。 ページ遷移してURLは変わるが、アニメーションは維持する。 モチベーション Routerでページ遷移すると、対応するComponentが新たに起動する。しかし、上記の動画のように、たとえばTabの遷移に合わせてURLを変更したい場合、Component instanceが新たに起動して状態が一新されると、UI上はアニメーションがぶつりと中断してしまい不格好なUIになってしまう。アニメーションを維持したままページ遷移したい。 ソリューション Tab1 page, Tab2 pageに対応するpathに紐つけるPageのComponentを、同一のものにする。ここでは、ATabCyclePageとする。 そして、Routerのlife cycle interfaceであるCanReuseを、Componentにimplementする。CanReuseは、Co
残念なことに、DartのコアライブラリにImmutable Collectionライブラリは無いが、BuiltCollection, BuiltValueパッケージを使えばImmutable Collectionを扱うことができる。ここでは、それらの使い方の基本を簡単に解説していく。 今回のサンプルコード https://github.com/ntaoo/built_collection_value_practice Mutable Collectionの問題 DartのコアライブラリのListは他のほとんどの言語と同じくmutable List。 class C { C(this.name); String name; } test('Standard List is mutable.', () { final c = C('a'); final l1 = [c]; final l2 =
ここでは、BLoCパターンのガイドラインを参照し、それに基づきデモアプリを作成し、その解説を通じてBLoCパターンの考察を行う。 今までも何度かMeetup等でBLoCパターンの解説を行ってきたが、あらためてこのブログ記事にまとめておく。 BLoCパターンとは BLoCは、Business Logic Componentの頭字語(acronym)で、状態管理に関するアーキテクチャパターン。 以下、https://www.youtube.com/watch?v=PLHln7wHgPEより、BLoCのガイドラインを引用する。 Business Logic Component(BLoC)のガイドライン 状態を管理するBLoCに以下の制約を課す。 インプットとアウトプットは、単純なStreamとSinkに限定する。(Inputs and outputs are simple Streams/Sin
このページを最初にブックマークしてみませんか?
『ntaoo.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く