エムスリーエンジニアリンググループ マルチデバイスチーム所属の荒谷(@_a_akira)です。 弊社では、昨年の12月に医師向けの新規アプリをAndroid, iOS向けにネイティブ実装しリリースしました。 今回は、その際Kotlin Multiplatform Projectを用いてユーザの行動ログ送信部分を共通化した話をしたいと思います。 Kotlin Multiplatform Projectとは Kotlin Multiplatform Project(以後MPP)とは、 Kotlinで書かれた単一のコードを Kotlin/JVM,(Android, Server等) Kotlin/Native(iOS, Windows, Linux等) Kotlin/JS の各プラットフォーム向けにトランスパイル可能なプロジェクトのことです もっと詳しく知りたい方は 公式ドキュメントだったり、私
If you have ever implemented any REST API in your mobile app, you should be familiar with JSON format. JSON is an open-standard file format or data interchange format that uses human-readable text to transmit data objects consisting of attribute-value pairs and array data types. The most common way how to parse JSON-format data to java/kotlin objects is by using one of the popular libraries like J
The 12th day’s post of Mercari Advent Calendar 2019 is brought to you by @kinnerapriyap from the US@Tokyo Android team. Writing unit tests usually means having to suffer through a lot of boilerplate code. I’m guilty of sometimes writing test cases with an internal understanding of how the code works, resulting in lesser test coverage. However, ideal test cases are expected to be pure code that exp
27 August 2019 – Droidcon (New York City, NY, USA) Kotlin’s compiler backends, JVM, JS, and native, are each often associated with one platform: Android, the web, and iOS, respectively. But nothing about these three backends require that they be used on multiple platforms. Android is one of the few places where we have the potential to use all three! This talk will explore using Kotlin/JS and Kotl
- Kotlin CoroutinesにコールドストリームがなかったのでFlowが登場 - Channelはホットストリーム - ホットストリームは結構簡単にリークする - Flowは受信を開始しない限り動作しない - Flowは実行する時に必ずコルーチンスコープに属するので閉じ忘れがない -…
Googleは5月7日(日本時間5月8日未明)、米マウンテンビューで開催中のイベント「Google I/O 2019」で、Androidにおける「Kotlinファースト」をさらに強化していくことを明らかにしました。 Kotlinは、2年前のGoogle I/O 2017でAndroidの正式な開発言語になり、その後急速に開発者の人気を集めてきました。 Googleによると現在、Android開発者の50%以上がKotlinを利用しているとのことです。 そこでGoogleは、Androidにおける「Kotlinファースト」をさらに強化することを発表しました。以下はAndroid Developerブログの記事「Google I/O 2019: Empowering developers to build the best experiences on Android + Play」から。 T
Striped Skunks; source: Kyle Breckenridge via nwf.orgUsing ‘it’ everywhereArguments in single argument lambdas are implicitly named it in Kotlin. This is helpful because it’s(pun intended) short and using it makes more sense than using $, $0 or whatever default names most other languages use. But it’s use should be restricted to really trivial cases and we should prefer giving explicit argument na
ふと思い立って 1 ヶ月程で Kotlin を使って B+Tree の単純な実装をしてました。一区切りついたのでコードを晒しつつ、英語でブログを書きました。 https://github.com/riywo/b-plus-tree I just published Learned about database by implementing B+Tree in Kotlin https://t.co/nTXq12LF2b — Ryosuke Iwanaga (@riywo) April 1, 2019 あとは、例によって落ち穂拾い。 InnoDB は情報が豊富にあるので題材としてよかった SQLite や他にも参考にする候補はあったのですが、いずれもコードを読む時間は取りたくなかった(コードを書くことが目的な)ので、資料やブログが豊富にある InnoDB を題材にしたのは正解でした。 Ko
結論(2021-07-06更新) 個人的なスタンス 個人的な意見として、原則 nullableのためにletを使うのみに留めたいところです。 そもそも、このような記事を書いて、それなりに閲覧されている程度には、スコープ関数は難しいからです。 JavaのAPIを使う場合、alsoやapplyが便利な場面があって、これは例外的に使ってもいいかもしれません。 が、スコープ関数を使わない素直なコードの選択肢を常に持っておくべきでしょう。 一応 スコープ関数の図解 --------以下、詳しく知りたい人向け-------- Kotlinの標準ライブラリには「スコープ関数」と呼ばれる4つの関数があります。 let、with、run、applyです。 それぞれ似ているので使い分けが難しいと思い、私なりの考えをまとめておきます。 (2017-01-26 追記) ver1.1で追加されるalsoについて解説
DroidKaigi 2019 にスポンサー枠で参加しました。 弊社では Android アプリエンジニアをはじめとして各分野のソフトウェアエンジニアを募集しております。 人生を豊かにするプロダクトの開発や、大きな企業でのソフトウェア開発をいかに改善していくかといったところに興味がある方はぜひお声がけください! いっしょにやっていきましょう! DroidKaigi 2019 それはともかく DroidKaigi、様々なセッションがあって素晴らしかったですね。 運営、スピーカー、スポンサー、そして参加者の皆様、ありがとうございました。 私個人としては、GraphQL についての知見を得られたのが大きな収穫でした。 本記事について 本記事は、GraphQL サーバーを Kotlin で立てるにあたって、仕組みを学んだ軌跡を残すものです。 GraphQL 自体の初心者が、Kotlin で Gra
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Kotlin 1.3 が2018年10月30日に正式版として公開されました。 それに伴い、コルーチンが stable へと昇格しました! 非同期処理を楽に書けるコルーチンですが、コルーチンの書き方はわかったものの、実際何がどう動いて何と何がどう関係しているのかといったメンタルモデルが構築されるまでよくわからないまま使ってました。 自分の理解の整理も兼ねて、自分の中のメンタルモデルを図と文で書き出してみました。 間違っているところなどございましたら、コメントなどでご指摘いただけますと幸いです。 Kotlin のコルーチンについて、多少どう
2019年1月におけるAndroid開発状況について簡単にまとめておきます。 ぼくが感じる個人的見解なので、人によっては違う印象だと思います。あくまで参考程度にしてもらえると。 Kotlinおそらく、ほとんどのプロジェクトがKotlinで書かれてると思います。新規プロジェクトでJavaを選択するのはかなりレアなのかと思います。 公式ドキュメントもKotlinでの記述が増えてますし、ktxとして便利な拡張関数も提供されてます。 Coroutines去年正式にリリースされたCoroutinesですが、まだ無理に入れる必要はないかなと思っています。特に既存プロジェクトに関しては。 新規プロジェクトに関しては導入するのもアリだと思いますが、必ずチームで相談しましょう。 Jetpackも対応が進んでるので、いずれはCoroutinesが当たり前になるかもしれません。 今すぐ慌ててやる必要はないと思い
※ Google Analyticsのアプリ以外の収集は継続。Google Analytics 360のプロパティは影響なし。 ※ Google URL Shortenerのリンクは2019年3月30日以降もリダイレクト可。 各公式アナウンスページは以下になります。 Google アナリティクス開発者サービス SDK の終了 https://support.google.com/analytics/answer/9167112?hl=ja Google Cloud Messaging -- DEPRECATED 4/10/2018 https://developers.google.com/cloud-messaging/ Google URL ShortenerからFirebase Dynamic Linksへ https://developers-jp.googleblog.com/2
これは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内で絶賛開発中のシステムに少し手を加えていますが、基本的に実際に開発している環境と同じになっています。 公開目的 公開に
はじめに PITを使用してKotlinなAndroidプロジェクトでMutation Testingを導入するまでのメモです。 Mutation Testing テストコードが正しいかを計測するために、Mutant Testingという手法があります。 Mutant Testingではプロダクトコードを機械的に変更し、変更されたコードに対してテストを実行します。そしてテストが失敗するかを確認することで、プロダクトコードの振る舞いの変更をテストコードが検知できるかをチェックする手法です。 ミューテーション解析 - Wikipedia 今回はMutation TestingツールとしてPITを紹介します。PITはJavaとその他JVM言語用のMutation Testingツールです。検索するときはpitestで検索すると良いです。 PITの素晴らしい点は、3rdパーティー製Android用G
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く