visible true

技術的なメモを書く

Kotlin in Action はとてもいいのでとりあえずAndroidエンジニアは全員読むのがいいと思います

献本頂きました。ありがとうございます。 Kotlin in Actionとは Kotlin in ActionはJetBrains社でKotlinの開発に参加しているDmitry Jemerov氏とSvetlana Isakova氏がJava開発者向けに書いたKotlin1.0の解説書です。 Kotlinが生まれた経緯、Kotlinの言語機能…

Android Architecture ComponentsのViewModelとDialogFragment

Android Architecture ComponentsのViewModelとHolderFragmentとActivity-Fragment間通信と。 - visible trueを書いたあと、 ああ、ViewModelでActivity-Fragment間通信するやつ、FragmentDialogでやるとよかったのか— 八木 (@sys1yagi) August 23, 2017 と…

Android Architecture ComponentsのViewModelとHolderFragmentとActivity-Fragment間通信と。

Android Architecture ComponentsのViewModel周りの実装を読んでいくとふーんってなったのでActivity-Fragment間通信やれそうだしやってみたらいけたなーそりゃそうだねみたいな話 Android Architecture ComponentsのViewModelとViewModelProviders Android …

Androidのアーキテクチャ本をクラウドファンディングで執筆します - 共著者3人の紹介 #peaks_cc

peaks.cc Android アプリ設計パターン入門 ある日 こんなこと書きます 個人的な思想としてアーキテクチャはチームのためにあると思っています。なのでそういう感じの章を書きます。章の紹介文を引用しておきます。 アーキテクチャはチームのために存在してい…

Clean Architectureを理解するための補助的なコンポーネント図のようなもの

Clean Architectureを雰囲気でしか理解していなかったんだけど、なんでだろうな〜って考えるとあの図とか説明文がややこしいからだな〜と思った。 抽象的なやつはええねん、具体をくれ具体を〜、と思ったので、Android-CleanArchitectureのサンプルコードを…

もうAndroidの非同期処理はasync/awaitでいいんじゃないかなぁと思った

Rx Ja Night Vol.2 - connpassで「 Androidの非同期処理をKotlinコルーチンで行う」という話をしてきました。 スライドで使っているコードは次のリポジトリに置いています。 github.com 今回取り扱った非同期処理の範囲 スライドやリポジトリのREADME.mdに大…

KotlinでViewDataBindingをシュッとinflateするやつ

RecyclerViewなどでViewDataBindingを使う時に次のように書くのめんどくさくて。 class ViewHolder(val binding:ListItemCommentBinding) : RecyclerView.ViewHolder(binding.root) override fun onCreateViewHolder(parent: ViewGroup, type: Int) = ViewHo…

DataBindingが原因のビルドエラー時にエラーを抽出するスクリプト

AndroidでDataBinding周りミスるとめっちゃエラー出て辛いですね。辛いのでDataBindingのエラーを抽出するスクリプトを書きました。スクリプトはかなり雑なので適宜いい感じにしてください。 extract_data_binding_error.rb #! /bin/sh exec ruby -S -x "$0"…

mastodon4j v0.0.6 をリリースしました

mastodon4jをリリースしました - visible true では0.0.3でしたが、0.0.6まで出ました。 差分はReleases · sys1yagi/mastodon4j · GitHubに書いてますがここでも軽く書きます。 v0.0.4 Release v0.0.4 · sys1yagi/mastodon4j · GitHub mastodon4j 各メソッド…

mastodon4jをリリースしました

mastodon4jをリリースしました。Kotlinで書かれていて、Javaからでも使えるように今後チューニングしていきます。現在の最新は0.0.3です。 最初はDroiDonの副産物としてmastodon4jを実装していて、まぁだれか出すだろうと思っていたけど1週間経っても出てこ…

React NativeでFirebase Storageに画像を上げるときにputStringが上手くいかないのでbase-64を入れてatob関数を補完する

React Nativeを、ペーパープロトタイピングとprottなどを使ったモックアッププロトタイピングの次のフェーズとして動くプロトタイピングツールに使えないかなぁと思ってちょこちょこ触ってます。 うまくいくと両ユーザ向けに同時に動くプロトタイプを提供で…

Kotlin 1.1で追加された標準ライブラリの関数をざっくり見る

Kotlin 1.1でいくつか標準ライブラリに追加された関数があるのでちら見しながら感想を述べます。 Kotlin 1.1: What’s coming in the standard library | Kotlin Blog T.also() let(), apply(), with(), run()に新たな仲間が。 @kotlin.internal.InlineOnly @…

DroidKaigi 2017で「解剖Kotlin ~バイトコードを読み解く~」を発表してきました

DroidKaigi 2017 3/9 15:10~ Room4で発表しました。 発表の内容 KotlinはJavaという話です。 感想 それなりに練習したけどわりと噛んだりつっかえたりしたのでもっと練習が必要だな〜と感じた。内容については前日までかなり色々迷って紆余曲折あったけど結…

Androidアプリケーションのビルド体験を改善するリモートビルドサービス Cyborg-Build を作りました

はじめに これはAndroid Advent Calendar 2016の20日目のエントリです。 本エントリではAndroidアプリケーションのビルド体験を改善するリモートビルドサービス Cyborg Build を紹介します。 背景 以前AndroidアプリケーションをGoogle Compute Engineのイン…

Kotlin 1.1 async/awaitの仕組みと使い方の概要 for Android

これはKotlin Advent Calendar2016の19日目のエントリです。 本エントリではKotlinの次期バージョン(1.1)で導入されるコルーチンと、その実装のひとつであるasync/awaitについて解説します。 今回書いているコードはGitHub - sys1yagi/kotlin-async-await-sa…

Vue.jsでvue-routerを使ってルーティングする時にGoogle AnalyticsでPage Viewを取る

ググってもパッとでてこなかったので。 前提条件 index.htmlなどにGoogle Analyticsを初期化するコードが埋め込まれていて、グローバルにga関数にアクセスできる vue-routerを使っている コード main.jsとする。VueRouterのafterEachにコールバックをセット…

AndroidアプリケーションをGoogle Compute Engineのインスタンスでビルドする

AndroidのBuildを別マシンで行うスクリプト書いたった - Qiitaがとても興味深かったので、Google Compute Engineのインスタンスでビルドする環境の構築を試してみました。体験としては最高だったので、環境構築の手順を簡単にまとめます。 解決したいこと 前…

「解剖 Kotlin ~バイトコードを読み解く~」をGitBookで公開しました。

テクブの夏コミ(C90)のアンドロイドアカデミアに書いた解剖 Kotlin ~バイトコードを読み解く~をGitBookにて公開しました。 GitBook こちらから読めます 解剖 Kotlin ~バイトコードを読み解く~ 概要 解剖 Kotlin ~バイトコードを読み解く~はKotlinで書いたプ…

Circle CIでAndroid SDK周りのライセンス許諾をローカル環境に合わせる

Circle CIの公式ドキュメントのTest Android Applications - CircleCIにある通りAndroid SDKをCircle CIでダウンロードするには次のようにcircle.ymlに記述する必要がある。 dependencies: pre: - echo y | android update sdk --no-ui --all --filter "pack…

WEB+DB PRESS vol.94で特集「はじめてのKotlin」を書きました

2016年8月24日発売のWEB+DB PRESS vol.94(¥1,598)で特集「はじめてのKotlin」を書きました。 Amazon: https://www.amazon.co.jp/dp/4774182869 WEB+DB PRESS: http://gihyo.jp/magazine/wdpress WEB+DB PRESS vol.94: http://gihyo.jp/magazine/wdpress/arch…

Kotlin学習の知見のかたまり「Kotlinスタートブック」はサイコーのKotlin入門本です

Kotlinスタートブックを献本頂いたので感想を書きます。 Kotlinスタートブック-新しいAndroidプログラミング 概要 KotlinスタートブックはJavaエンジニアおよびAndroidアプリケーションエンジニア向けにKotlinの基本を解説する本です。Kotlinの文法や機能を…

KotlinのDestructuring Declarationsを非構造化宣言呼ぶことにした けど色々あって分解宣言にした〜

分割代入とか分解宣言とか呼んだりするケースを見かけるけどどうもしっくりこないので非構造化宣言と呼ぶことにした。 Destructuring = 非構造化 Declarations = 宣言 じっさいデータ構造を複数の変数へ非構造化してるしー。まぁそれなら分解でもいいじゃん…

AndroidでJava8環境 2016

RxAndroidとRetrolambdaで大体Java8をAndroidに持ち込む - visible trueから1年以上経過して界隈も色々更新されていってます。ということでイマドキのJava8環境構築をメモします。 バックポートライブラリとJava8の機能 バックポートライブラリとそのライブ…

Kotlin Tips: Reified Type Parametersで型チェックを汎用化する

問題 Kotlin Tips : Intentに必要な値が入っていない場合例外をスローしたい - visible trueではgetLongOrThrow()をIntentに追加しlazyを使う事で可読性を高めた。 Intent.getIntOrThrow(key: String)のおさらい fun Intent.getIntOrThrow(key: String): Int…

Kotlin Tips: 可読性のために拡張関数で別名をつける

問題 次のコードはRxJavaのCompletableを利用している例である。 repository.deleteEntry(entry) .subscribe( { e -> view.hideProgress() view.showError(e) }, { view.hideProgress() } ) このコードには次の問題がある。 repository.deleteEntry()がCompl…

Kotlin Tips : Intentに必要な値が入っていない場合例外をスローしたい

実際にKotlinを使っているなかで思いついたことなどをこまめにメモると良い気がしたのでなるべく書いていく Before : デフォルト値を使ってチェックする 以下のようにActivityでintなどのプリミティブな値を受け取るとする。値はrequiredでセットされなかっ…

Kotlin学習とライブラリ作成

第2回Kotlin勉強会 @ Sansan - connpassで「Kotlin学習とライブラリ作成」というタイトルで話してきました。 kmockito jitpackで配信してるので使えます。 GitHub - sys1yagi/kmockito: Mockito for Kotlin. allprojects { repositories { ... maven { url …

Fundamentals Of The Data BindingをGitBookで公開しました。

丁度自分でもData Binding Libraryの細かい所を忘れていて自分の原稿読んでわーいって感じだったのでついでにGitBookに公開していつでも読めるようにしました。2015年夏に書いたものなので一部古い内容が含まれているかもしれません。適宜修正します。(セッ…

rxbinding-recyclerview-v7とPublishSubjectを使ってRecyclerViewでスクロールが一番下まで行ったらロードする実装

すでにある気がするけど見当たらなかったのでメモ。 ソース こちらにあります。 GitHub - sys1yagi/rxrecyclerview-load-more 準備 rxbinding-recyclerview-v7をdependenciesに追加する。 dependencies { compile 'com.jakewharton.rxbinding:rxbinding-recy…

kaptで発生するエラーを回避するworkaround (JSR 269ライブラリ作者向け)

KotlinでJSR 269のライブラリを使う場合以下の様にkaptを使って設定するわけですが不安定な動きをする場合があります。 kapt { generateStubs = true } dependencies { compile 'com.github.sys1yagi.fragment-creator:library:0.6.0' kapt 'com.github.sys1…