はじめに AndroidアプリにDaggerを導入した際の手順と 自分がDaggerを学び始めた際に、とっかかりとして欲しかったなぁと思う情報をまとめます。 今回の記事は自分自身がDagger初心者ということもあり、初歩的な内容となっています。 その分、同じDagger初心者の方に分かりやすく書けたらいいなと思いこの記事を書き始めました。 Daggerは、JavaやKotlinでDI(Dependency Injection)を行うことをサポートするライブラリです。 DIはたびたび「依存性の注入」と訳されますが、この訳がDIを意味不明なものにしていると思っています。 ネットで検索していると「DI = 依存オブジェクトの注入」と訳されている方がおり、 とてもスッキリしたので本記事でも「DI = 依存オブジェクトの注入」で進めようと思います。 Dependency Injectionを「依存性
There is a number of great articles on Kotlin DSL scripts for Android application. My aim is not to go through the details of the pros and cons of Kotlin DSL over Groovy. Unfortunately, I was not able to find any documentation or examples specifically around “How to write a Kotlin DSL for multi-flavoured application”. In this articles, I will explain the step-by-step process to build a multi-flavo
August 27, 2019Kotlin Fest 2019でKotlin Multiplatform Projectについて発表した 2019年8月24日に開催されたKotlin Fest 2019 で、 Kotlin Multiplatform Project入門について話してきました。 (以下Kotlin Multiplatform ProjectをMPPと呼ぶ) セッション一覧 (今年のロゴはちょっとシュッとしたらしい) CFPを出すまでの流れ去年のKotlin Festは、スピーカーの公募はせずに招待のみで行われていました。 前職のチームでは、Androidでは2015年4月から、サーバサイドKotlinも2016年9月とかなり初期の頃からKotlinを愛でていたKotlin愛に溢れたチームだったので、昨年は弊チームからは先見の明を持つボスが招待されKotlin Festで発表
Kotlin 1.3をサクッと学ぶ - CoroutineとKotlin/Nativeを触って理解しよう Kotolin入門者に向け、Kotlin1.3に加わったCoroutineとKotlin/Nativeという2つの機能を中心に、実践的なプログラミングのヒントをお伝えします。 今やAndroidアプリ開発には欠かすことのできない言語となった「Kotlin」。2018年秋にバージョン1.3がリリースされ、その後も定期的にバージョンアップが進んでいます。Kotlin 1.3の大きな特徴は、CoroutineとKotlin/Nativeという2つの機能が追加されたことです。本記事では、この2つの機能を中心にKotlinの最新動向について紹介しながら、実践的プログラミングへのヒントをお届けします。 本記事のサンプルプログラムは、macOS上のIntelliJ IDEA Community Ed
2018年10月30日にリリースされた Kotlin 1.3 で、 Kotlin Coroutines が stable になりました。概念などの説明は省きますが、非同期的な処理を同期的にすっきり書くことができる仕組みになります。 活用の幅が広そうなコルーチンですが、「Web APIやDBを簡単に扱いたい」というのが、Android 開発における大きなニーズなのではないかと思います。 この記事では、Android で、 コルーチンと Retrofit を使って Web API 叩く方法をパターン別に紹介します。また、JUnit と mockk を使ってテストを書く方法にも触れます。RxJava を使っている人向けに各例が RxJava の何に相当しそうかということも書いたりしていますが、使っていない方は読み飛ばしていただいても大丈夫です。 公式のドキュメントなどを読めば自明なことばかりかと
台湾まぜそば、おいしいですよね。名古屋飯だそうです。台湾は? つい先日、友人とのやりとりで Kotlin Coroutines を使うときにどのようにリトライを行うかについて深く考えていなかったという気付きがありました。 ということで、「Android アプリで画面の ImgeView にインターネットから取得した Twitter のアイコン画像を表示する」というケースでリトライ処理を考えてみました。 わざとリトライ処理に行ってほしいので、Twitter のアイコン画像の URL はあえて壊れた URL を指定しています。 リトライのメソッドを作って頑張ってみるパターン、RxJava 2 と連携させてみるパターンの2種類を書いてみました。 といっても、Coroutines のみで実装してみたパターンは、調べる過程ですぐに見つけた Stack Overflow のコードをそのままお借りしてい
これはQiita Kotlin Advent Calendar 2018 1日目の記事です。 qiita.com サーバサイドKotlinのコード公開したらみんな見てくれるかな?そこで開発出来そう!ってなったらサーバサイドKotlinのエンジニアになりたくなるかな?— shiraji (@shiraj_i) 2018年12月13日 ツイートしたら良い反応もらえたので、サーバサイドKotlinのアプリを以下で公開する事に決めました。 github.com cloneして、docker-compose upしたら、GraphiQLが http://localhost:8090/graphiql 立ち上がって、サーバの動作確認が出来る。簡単!!! GraphiQL画面 Ubie内で絶賛開発中のシステムに少し手を加えていますが、基本的に実際に開発している環境と同じになっています。 公開目的 公開に
結論 GCP無料枠でTCG「ファイアーエムブレムサイファ」の通販価格比較サイト「サイファログ」を最新の技術スタックで作ってみた。 サイファログ 動機 趣味で何かをしているとき、こんなザービスが欲しいなぁ、と思うことがよくあります。例えば、自分はトレーディングカードゲーム「ファイアーエムブレムサイファ」に嵌っているのですが、これがなかなか面白いです。 fecipher.jp しかし、TCG あるあるなのですが、カードが一杯入っているボックスを複数買ったところで、欲しいカードは全部必要枚数揃わず、店舗や通販を利用して、カードを指名買いしていく必要があります。その際に、実際にその買おうとしている価格がボッタクリ価格ではなく適正なものなのか? というのは分かりにくく、感覚的に買うと損をしてしまうことがあります。そこで、通販価格を一覧できるサイトを用意し、参考価格として用いたり、通販が安ければそのま
はじめに この記事は ウェブクルー Advent Calendar 2018の15日目の記事です。 昨日は @kouchanne さんの「Vue.jsとFlaskのDocker環境を構築してみた」でした。 概要 先月に正式版がリリースされた Ktor を使って、簡単な Web API を作ってみます。 Ktor は Kotlin 製 Web Framework で、API が扱いやすい(らしい)点と、coroutine による非同期処理が売り文句になっています。また、機能の多くはプラグイン形式で提供され、フレームワーク本体は軽量に作られています。 1. セットアップ 公式の QuickStart を参考に進めていきます。 1-1. プロジェクト作成と Hello Wolrd Ktor Project Generator でプロジェクトのスケルトンを生成できます。 とりあえず、デフォルト構成
Coroutineを理解するため、以下のサイトを日本語訳しました。 https://proandroiddev.com/kotlin-coroutines-patterns-anti-patterns-f9d12984c68e 目次 非同期呼び出しをcoroutineScopeでラップするか、SupervisorJobを使用して例外を処理します。 ルートコルーチンのメインディスパッチャを優先する 不要なasync / awaitの使用を避ける スコープジョブをキャンセルしない 暗黙のディスパッチャを使って中断関数を書かないようにする グローバルスコープの使用を避ける 非同期呼び出しをcoroutineScopeでラップするか、SupervisorJobを使用して例外を処理します 非同期ブロックが例外をスローする可能性がある場合は、try / catchブロックでラップすることに頼らないでく
kotlinx.coroutines v1.4.0 のドキュメント「Guide to kotlinx.coroutines by example 」を翻訳しました。 この文書はGitHubで管理しています。 元の文書が複数のファイルに分割されてしまったので、こちらには掲載しませんのでGitHubの方でご覧ください。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
注意 この記事は、Kotlin: v1.2.31, Coroutines: v0.22.5に基づいており、最新バージョンでは正常に動作するものではないので、ご注意ください。 まえがき みなさん Kotlin coroutines 使ってますか。 Kotlin coroutines の入門は、こちらから。 入門Kotlin coroutines Android アプリの API 通信処理は、SDK 標準の AsynTask/Loader が使いづらかったため、近年は RxJava + Retrofit で実装することが主流になっていると思います。 が、上記記事にも書かれていますが、RxJava は非同期処理を行うためのフレームワークでもなんでもなく、単に API 通信時の非同期処理を行うだけに使うのは、学習コストが少し高かったりします。 そんな中、Kotlin coroutines が、次期
はじめに 私はこれまで次のようにAndroidアプリ設計に関わる記事を書きました。 Kotlin + Architecture Component + Dagger2によるAndroidアプリ設計 RxJava + Flux (+ Kotlin)によるAndroidアプリ設計 これら2つ記事の内容を組み合わせた、「Architecture Components + FluxによるAndroidアプリ設計」について考えたので本記事にその設計をまとめました。 結論から言うとFluxアーキテクチャとArchitecture Componentsの相性はとても良いと思います。 Sample 実装のサンプルは以下にあります。 このリポジトリにはFluxアーキテクチャのDispatcherやStoreからViewへのデータの反映を様々な実装で実現したサンプルがあるので、合わせて参考にしていただければ幸
便利で汎用性高めのExtension集です。 今後も便利なExtensionができ次第、本記事を更新していきます。 この他にも便利なものがあればコメントでお願いします!! Swift版の記事を見て、Kotlin版も欲しいなと思ったのがきっかけです。 クラス名の取得 ProGuardを使用していると、クラス名は難読化されるので注意しましょう。 /** * クラス名を取得 * * @return String */ fun Any.className(): String = javaClass.simpleName /** * クラス名を取得 * * @param any Any * @return String */ fun Any.className(any: Any?): String { if (any == null) { return "Null" } return any.jav
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く