Studyplus Engineering Blog

スタディプラスの開発者が発信するブログ

Kotlin

KotlinとSwiftとDartの標準的な日付変換を比べてみる

こんにちは。 最近はヨッシーストーリーを進めています、若宮(id:D_R_1009)です。 Studyplusでは、いくつかの画面で日付を扱っています。 私はAndroidとiOSをKotlinとSwift、そしてDartで書く毎日を送っています。 そうなると、特に日付の操作で「この言語、…

画面回転対応で対応すること

こんにちは、モバイルクライアントグループの隅山です。 最近フィットネスバイクを購入し、運動不足の解消を心がけています。 今年の6月より、AndroidのStudyplusアプリはタブレットでの動作を前提とした実装に切り替えました。 タブレットでも快適に利用で…

Billing Library v4.0.0 への更新

こんにちは、モバイルクライアントグループの中島です。 最近、ディスプレイの上に引っ掛けて物を置けるようにするボードを買いました。思ったより便利に小物を置けるので良さげです。 さて、今回は Google Play Billing Library (以下Billing Library) を、…

Paging 3ライブラリへの更新とKotlin 100%

こんにちは。 AndroidとiOSといろいろやっている若宮(id:D_R_1009)です。 西日本では記録的な早い梅雨入りな一方、会社のある関東ではだいぶ遅れての梅雨入りとなりました。 部屋にこもってAppleやGoogle、Microsoftのカンファレンスを見ることで時間は潰せ…

あなたの知らないStudyplusモバイルクライアントグループの世界

こんにちは、モバイルクライアントグループのリーダー大石です。 春から息子が就活を始めたので親としては期待と不安が入り混じる季節です。 今回はモバイルクライアントグループで何をどのような体勢で開発しているか、どのような取り組みをしていたか昨年…

Dagger の Assisted Inject 統合とマイグレーション

こんにちは、モバイルクライアントグループの中島です。 年末少し膝を痛めてしまいランニングを中断していたのですが、そろそろ再開していきたい今日この頃。 さて、今回は Dagger が Assisted Inject を統合したことによるマイグレーションについてお話しし…

DropboxのStoreで通信量を削減しました

こんにちは、モバイルクライアントグループの隅山です。 前回は両OS開発についてのブログを書きましたが、今回はDropboxのStoreを用いてAndroidアプリの通信量を削減した話をしていきます。 Storeについて 導入について 導入方法 導入解説 メリット・デメリ…

RecyclerViewで Drawable に tint を設定する際は気をつけよう

こんにちは、モバイルクライアントグループの中島です。 最近健康診断で久しぶりに出社しましたが、体脂肪率が痛かったのでランニングを始めました。 頑張っていきたい。 さて、9月頭にも本ブログで紹介いたしましたが、Studyplusでは8月31日にiOS/Android両…

Kotlin Flow+Roomで作るTimer&Stopwatch

こんにちは、モバイルクライアントグループの若宮(id:D_R_1009)です。 2月以降リモートワークで開発を続けております。会社近くのラーメン屋さんが恋しくなってきました。 今回は5月中旬にリリースした、AndroidアプリのTimer&Stopwatch改修について書きます…

Google Play定期購入でプランを切り替えるモードの話

こんにちは、モバイルクライアントグループの中島です。 Studyplusでは3月17日に、有料会員サービスである Studyplus Pro をiOS/Android両OSでリリースしました。 info.studyplus.co.jp Studyplus Pro の開発では、アプリ内課金について様々な要件を調査しま…

WorkManager とViewModelの間でデータを受け渡しした話

こんにちは、モバイルクライアントグループの中島です。 今回はWorkManagerを使った非同期処理で、WorkManagerとViewModelの間でデータのやりとりを行なう方法について話したいと思います。 ここで「データのやりとり」と言っているのは、WorkManagerに処理…

JetpackのNavigationで開始画面を変更する方法

こんにちは、モバイルクライアントグループの隅山です。 去年からNavigationを導入してきましたが、導入する際に画面遷移周りで課題があったのでその課題について紹介します。 画面遷移の課題 解決策1:StartDestinationを用いる 解決策2:GlobalActionを…

WorkManager + Dagger2によるバックグラウンド処理

こんにちは、Androidチームの若宮(id:D_R_1009)です。 昨年末にAndroidチームが導入した、WorkManagerをDagger2と組み合わせる方法を紹介します。 WorkManagerとは developer.android.com WorkManagerは、確実に実行したい非同期処理に対して利用するAndroid…

AAC Navigation で Bundleの受け渡しを SafeArgs で行なってハマった話

こんにちは、Studyplus Androidチームの中島です。 以前の話に引き続き、 AACのNavigationについて話したいと思います。 今回は 遷移元・遷移先のFragment間でのBundle受け渡しでちょっとハマったことについてです。 なお、執筆時に利用している Navigation …

スタディプラス AndroidアプリKotlin化の歩み

こんにちは、Androidチームの若宮(id:D_R_1009)です。 今回はAndroidアプリの大きな更新、JavaからKotlinへの移行について書きたいと思います。 Androidアプリの歴史 Kotlinの導入 Kotlin化の本格化 Kotlin Coroutines導入、RxJavaから移行開始(2018年11月) …

Kotlin Fest 2019に参加しました

こんにちは、Androidチームの若宮 (id:D_R_1009)です。 Kotlin Fest 2019(2019年8月24日)にAndroidチームの3名(若宮、中島、隅山)で参加してきました。 kotlin.connpass.com 昨年度に参加した時のブログはこちらです。昨年に引き続き 勉強会・カンファレンス…

DatabaseView(Room 2.1)による本棚並べ替え機能リリースについて

こんにちは、Androidチームの若宮(id:D_R_1009)です。 スタディプラスのAndorid版にて、5月半ばより不具合の発生していた「本棚」機能を7月頭に修正したしました。 ご不便、ご迷惑をおかけしましたこと大変申し訳なく思っております。 「本棚」の不具合にお…

Navigation で DialogFragment を表示した話

こんにちは、Studyplus Androidチームの中島です。 2019年6月より、Studyplus AndroidアプリはTarget SDK28への対応、合わせてAndroidXへの移行を行いました。 今まで「AndroidXに対応したらここ直しましょう」としていたところをガシガシ直していくのは楽し…

スタディプラス発OSSライブラリ Jasperについて

こんにちは、Androidチームの若宮(id:D_R_1009)です。 先日、JasperというOSSライブラリをリリースしました! github.com 今回は開発目的やモチベーション、今後の方針などを記したいと思います。 Jasperとは Jasperを作成した理由について 多くの人の目を通…

Kotlin Coroutinesを(SDKに)導入しました!

初めまして。Studyplus開発部の若宮(id:D_R_1009) です。9月よりAndroidアプリの開発を行っています。 Kotlin、いいですよね。Kotlin Coroutines、シビれますよね。 ということで、Kotlin1.3がリリースされたことを記念してStudyplus-Android-SDKにKotlin Co…

Kotlin festに行ってきました

弊社には 勉強会・カンファレンス参加補助 があります。 その制度を使って会社のお金でKotlin Festに参加させていただきました。補助といいつつ基本全額サポートしてくれました。 ありがとうございます。 Kotlin Festとは 「Kotlinを愛でる」をビジョンに、K…