なんだか微妙な感じします。 APIの仕様がなのか、 サンプルのコードがなのか、 Camera2。 android-Camera2Basic/Camera2BasicFragment.kt at master · googlesamples/android-Camera2Basic いくつかのコールバック処理が 連続して処理されますが kotlin の芸当で分かりやすくしてみましょう。 コールバックのラッピング 多くの非同期処理APIは コールバックスタイルのインターフェースを持ってます。 suspendCoroutine の 「suspend function」 を使うと 簡単にコールバックをその中にラッピングすることができます。 簡単な例を挙げてみます。 fun longComputation(params: Params, callback: (Result) -> Unit) lon
Kotlin Fest 2019楽しかったです。 今回は「Kotlinコルーチンを理解しよう 2019」を話してきました。 資料作りの様子、各セクションを作る時になに考えてたか、反省点などまとめます。 前回と今回でロゴの形がちょっと変わってる 資料 コルーチンとはなにか、から実際使ってどうテストするかまでを45分でまとめるのはなかなか難しかったですが、一応網羅的にやれたか!?とは思っています。作る時はヒイヒイ言っててなにも考えてなかったけど改めてみると、これから触っていく場合に最初に読むものとして結構いいかもしれんと思うなどしました。 speakerdeck.com コルーチンとはなにか、なにがうれしいのか 概念については自分のなかではある程度理解できてたものの、対象コルーチンや非対称コルーチンについて曖昧だったので改めて調べた。 新雑誌「n月刊ラムダノート」の『「コルーチン」とは何だった
Transcript try-catchからrunCatchingに 移行した話 安齋祐紀 (@off2white) 自己紹介 安齋祐紀(あんざいゆうき) Twitter: @off2white 株式会社 ディー・エヌ・エー(DeNA) - 次世代タクシー配車サービス「 MOV」 - Androidアプリ開発担当 - プロジェクト管理とコーディングの割合 = 50:50 (気持ちは) 最近の悩み いまだに運営さんが採択時に 人を間違えていなかったのか心配 None 背景 個人的エラーハンドリング の変遷 その1 むやみに例外を使わなくなった ClassA ClassB ClassC Exception New ClassD 誰が Catch する? NewException Not For Me Exception ? ClassA ClassB ClassC sealed class N
Posted on December 24, 2018 | 5 minutes | 2495 words | yota ogino はじめに この記事はKotlinアドベントカレンダー24日目の記事です。 Advent Calendarに空きがあったので投稿することにしました。 この記事ではKotlin/Nativeの標準ライブラリの実装について解説します。 検証環境 Kotlin Native v1.0.3 macOS Mojave 10.14.2 Kotlin/Nativeとは Kotlin/NativeはKotlinのコードをネイティブバイナリにコンパイルしてくれるものです。 各プラットフォーム・アーキテクチャ向けのネイティブバイナリが生成されるので、Jvm KotlinのようなVM環境なども必要なく、ネイティブ環境のままで動作します。 現在は以下のプラットフォームがサポートさ
Kotlin Fest 2019 で行った「Coroutinesから紐解くKtorの仕組み」の資料です。
https://kotlinlang.org/ 2019/8/22 Kotlin 1.3.50がリリースされました Kotlin 1.3.50 released 併せて Kotlin coroutiees1.3.0もリリースされましたね! (こっちは今回触れませんが..) Kotlin Fest 2019も開催直前でのリリースとなりました! (登壇された方は直前に1.3.50に対応するため資料修正が大変だったとか..) 以下リリースブログを略しながら翻訳しました。 あまり慣れてないので誤訳があったらごめんなさい サマリ Null-Checkの仕組みが最適化されました 新しいDuration and time measurement APIが実装されました(プレビューで利用可能) Java-to-Kotlinコンバータが改良されました ExperimentalとしてGradle Kotlin
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads 71 Ads API 10
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads 71 Ads API 11
AndroidでKotlinのcoroutine(Async, Await)を使ってサクッとHTTP通信(非同期処理)を行うAndroidKotlin非同期処理coroutineAsyncAwait はじめに Kotlinを用いてAndroidアプリ開発を行っていて 「REST APIを叩いて取得した結果をもとにUIを更新する」際に HTTP通信はメインスレッド外で行う必要がある(非同期処理が必要) 取得したjsonデータのパースが面倒(Gson, moshiなどいろいろとライブラリはあるが、jsonのデータスキームを定義するのが面倒。) UI更新はメインスレッドで行う必要がある(AsyncTaskなどで非同期処理を行うと処理が若干長くなる) などの制約があるため、個人的に上記を楽に行える汎用スニペットを作成しました。 今回作成したスニペットのポイントは HTTP通信には、OKHttp3を
この記事は2018年Kotlin Advent Calendar の11日目の記事です。 (本来は22日目でしたが、今年は残念ながら空きが出来ているので先に乗っ取りました) Kotlin Advent Calendarは気付いてみれば4年連続4回目の出場になりました。 僕とKotlinの出会いは現在の会社に入社する2015年の4月頃でした。 Android開発ではJava全盛期の時代に、当時まだM13(milestone)だったKotlinのみを使って開発しようというプロジェクトで、 紆余曲折を経て2016年の1月にリリースされたのですが、国内のそれなりに大規模なサービスでフルKotlinでリリースされた Androidアプリでは一番早かったのではないかと思います。ちなみにアプリのリリース時点ではKotlinはまだβバージョンでした。 公式以外の情報もまだまだ少なくチームメンバーと試行錯誤
Coroutineを理解するため、以下のサイトを日本語訳しました。 https://proandroiddev.com/kotlin-coroutines-patterns-anti-patterns-f9d12984c68e 目次 非同期呼び出しをcoroutineScopeでラップするか、SupervisorJobを使用して例外を処理します。 ルートコルーチンのメインディスパッチャを優先する 不要なasync / awaitの使用を避ける スコープジョブをキャンセルしない 暗黙のディスパッチャを使って中断関数を書かないようにする グローバルスコープの使用を避ける 非同期呼び出しをcoroutineScopeでラップするか、SupervisorJobを使用して例外を処理します 非同期ブロックが例外をスローする可能性がある場合は、try / catchブロックでラップすることに頼らないでく
Kotlin Coroutines 1.2.0からFlowというCold Streamを実現する仕組みが導入されました。これまではChannelというHot Streamの仕組みがあったのでRxにだいぶ近づいてきた感じがあります。 この記事では、FlowとLiveData、双方向データバインディングを使っていい感じにUIのイベントを処理してみます。 LiveData as Flow まずは、LiveDataにセットされた値をFlowとして扱うための拡張関数を作ります。Channelを作るときはchannelやproduceといったChannel Builderで作っていましたが、FlowではflowやflowViaChannelというFlow Builderが用意されています。 flowではFlowに値を流す処理emitがsuspend関数になっており、ObserverのonChanged
Markus Trienke, Sunset over drift iceAsynchronous, long-running, or remote operations can be expressed using a future type, so a function returning a Value could be implemented as: fun fooAsync(p: Params): CompletableFuture<Value> = CompletableFuture.supplyAsync { bar(p) } When you callfooAsync(p) you get a promise to deliver a value in the future and there is an operation bar running in backgroun
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く