
OkHttp: Java to KotlinのPRを見て勉強する Created at Sun, Mar 24, 2019 OkHttpがKotlin化をするというISSUEが立てられました。 Upgrade OkHttp 3 to Kotlin and call it OkHttp 4 これの是非についてはさておき。現状、いくつかのJavaコードがKotlinへと置き換わっているので、それらのレビューで気になったこと、知らなかったこと、忘れがちなことを勉強がてらまとめたいと思います。 checkNotNullを使うかどうか could also be code no preference myself Kotlinの標準ライブラリに、checkNotNullがあります。 これは、値がnullならIllegalStateException例外を投げるものです。 以下のコードは同じ意味を持ち
Roomに2.1.0-alpha03からsuspend関数(コルーチン)のサポートが入りましたね。ちょっと気になったのでいくらか触ってみました。 Architecture Components Release Notes | Android Developers 何ができるようになるのか DAOでsuspend関数を宣言できるようになりました。具体的には次です。 @Dao interface UserDao { @Insert suspend fun insert(user: User) @Query("SELECT * FROM user") suspend fun getAllUsers(): List<User> @Delete suspend fun delete(user: User) } CoroutineScopeのなかでこれらの関数を呼ぶとノンブロッキングで各種操作がで
この記事について この資料は株式会社Diverseの社内で使用しているDartを速習したい人向けの教材(2018/08/09作成)を公開したものです。 社内でのFlutter採用が本決まりになったため関係エンジニア向けに作成したものですが、多くの人に役立ててもらえる可能性があるため公開と相成りました。 Diverseは今後もコミュニティに貢献する活動を続けてゆきます。 気になった方は @kikuchy または弊社社員へお気軽にご連絡ください。 まえがき Kotlinより断然Javaに近い言語なので、Javaベースで話した方が早い箇所が多そう。 以下の前提の人がFlutter開発で不便しない程度にDartを読み書きできるようになることを目標としています。 解説するのはDart2 Java/KotlinをAndroidアプリ開発で一通り使ったことがある JavaScriptやRubyもかじった
これはKotlin Advent Calendar 2017の6日目の記事です。 はじめに KotlinはJavaとの相互運用性を重視していますが、JavaとKotlinは言語仕様的に異なる部分があり、Kotlinはその違いを吸収するために様々な工夫をしています。 Jvmアノテーション JvmStaticアノテーション KotlinのCompanion Objectで定義したコードをJavaから呼び出すと、Companionを経由することになります。Companion経由であっても動作上の問題はありませんが、出来れば普通にJavaで定義した場合と同様な呼び出し方をしたいですよね?そういった場合はJvmStaticアノテーションを付けることで、Staticメソッドとして定義されているかのように呼び出すことができます。 // Kotlin class JvmStaticSampleForCom
Kotlin歴2ヶ月程度で勉強中なのですが、現在プロジェクトのソースコードを少しずつですがKotlinに置き換えていて、本日11/7時点でKotlin率は40%弱です。 この記事の内容は、そんな自分がKotlin置き換え始めた頃の失敗、問題点を雑に振り返り、 JavaのソースコードをKotlinに書き換える際には下記2つを行なうのが良いのではないかという提案です: 自動変換コードは常に疑う デコンパイルされたバイトコードのレビューをする 尚、内容はYahoo JAPAN!様で開催されたBonfire#2にて発表したものから抜粋しています。(発表資料はこの記事の下部にあります) Kotlin置き換え始めた頃の自分の問題点 1. 自動変換を信用しすぎていたこと Android Studioを用いたAndroidアプリケーション開発において、JavaのソースコードをKotlinに置き換える際には
はじめに アメーバピグでサーバーサイドエンジニアをしている木村です。 アメーバピグはサービス開始してから8年半となるサービスでサーバーサイドはJavaで開発されています。そこに先日新言語としてKotlinを導入したので経緯や導入までの道のりを紹介したいと思います。また、今回はJavaとKotlinの技術面の比較よりも導入までのプロセスに焦点を当てたいと思います。 導入の動機 Kotlinといえば、Google I/O 2017でAndroidの公式言語としてサポートされることが発表されましたが、実はその半年くらい前から私のプロジェクトではJava以外の言語の導入を検討していました。社内でのサーバーサイド言語のトレンドはJava→Node.js→Goと移ってきていてJavaはやや置いていかれてる印象です。 Javaはいろんな意味で安定した言語である反面コードが冗長で、デキるエンジニアほどJa
実験的機能っぽいけど、JUnit5でもParameterized Testsができるみたいなので、お試ししてみたよ。 必要なライブラリを追加 junit-jupiter-apiとParameterized Testをするために必要なjunit-jupiter-paramsを追加してあげる。 testCompile 'org.junit.jupiter:junit-jupiter-api:5.0.0' testCompile 'org.junit.jupiter:junit-jupiter-params:5.0.0' テストコードを書いてみる ドキュメントを参考に書いてみた。 Testアノテーションは不要で、ParameterizedTestアノテーションを設定してあげるみたい。 テストデータはValueSourceアノテーションに設定する。ValueSourceアノテーションでは一部の型だ
先日勤務先で開発合宿に行きました。プロダクトのKotlin化が途中だったので、仕上げてきました。 スライドでは省略した、ハマった点の詳細を共有します。 確認できるサンプルを用意してあります。サンプルの環境は次の通りです。 Android Studio: 2.3.3 Support Library: 25.3.1 Kotlin: 1.1.3-2 Mockito: 2.8.47 Robolectric: 3.3.2 github.com ハマった点 Non-NullにNullが入る Abstractクラスのテストで変更が反映されない @Jvmアノテーションを消せない Non-NullにNullが入る JavaからKotlinへは、Android Studioの機能でファイル単位で変換できます。 Javaで定義されているメソッドを呼び出す際に、次のエラーが起きてアプリがクラッシュすることがありま
これはKotlin Advent Calendar 2016の12/11の記事です。 kotlinでやるとAndroid簡単に書ける手法まとめとかないかな。extentionでbindingadapter書くとか、custom viewのコンストラクタをJvmOverloadsで省略とか。 — しらじ (@shiraj_i) 2016年8月23日 8月23日にこんなつぶやきをして、今日まで溜めたAndroid開発をしていて、こう書くと簡単でキモチイイ!!!というKotlinの文法を紹介したいと思います。 (あくまで自分が気持ちいいってだけだからね!) 自己紹介 Kotlin 1.0.4, Kotlin 1.0.5で名前が載ったExternal Contributorsの一人です(嬉しいから自慢)。主にKotlin Pluginの静的解析にコントリビュートしています。Kotlinで書かれてい
1.0.0 がリリースされました。やりましたね。 僕の観測範囲内に見えることが増えてきたので、興味本位で少しずつ触っています。 まず、ブラウザだけで試せるチュートリアルが大変素晴らしいので、Kotlin が肌に合うかどうか確認するといいですよ。 Kotlin Koans js で実装されたエディタなのにシンタックスハイライトだけでなく、入力補完がガンガン効くので凄く良い。 僕の理解 大体 3 日くらいかけて言語仕様やマニュアルの類を読みながらチュートリアルをこなした結果、 Kotlin は 安全な次世代の Groovy である という理解に到達しました。 僕が Groovy に対して持っていた不満は、大体以下の通り。 ランタイムがデカ過ぎる groovy-all-2.4.6-indy.jar が 6.5M バイトコードエンハンス等の危険な黒魔術がカジュアルに動く 型がありそうで、実は殆ど
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く