スタディサプリ Product Team Blog

株式会社リクルートが開発するスタディサプリのプロダクトチームのブログです

Android

DroidKaigi 2024 で GraphQL クライアント実装について登壇しました

こんにちは、Androidエンジニアの@morux2です。先日 DroidKaigi2024 にて、「GraphQLの魅力を引き出すAndroidクライアント実装」という発表を行いましたので、その報告をさせていただきます。 2024.droidkaigi.jp 発表資料はこちらになります。 speakerdeck.…

MagicPod で効率アップ!Android アプリの E2E テスト自動化

こんにちは、Android エンジニアの @myamamic です。スタディサプリ小中講座の Android アプリ開発を担当しています。 この記事では私たちが実施している E2E テストについて、実施の目的や自動化によって受けている恩恵、E2E テストをどのように運用してい…

Flutterによるネイティブアプリのリプレースプロジェクトを完遂しました

こんにちは、モバイルアプリエンジニアの @mtbhiro です。現在はスタディサプリ for SCHOOL(以下 forSCHOOL )1というプロダクトのモバイルアプリ開発を行っています。 Flutter による forSCHOOL アプリのフルリプレースプロジェクトを、2023年8月に Android …

GraphQL Trusted Documents の実装パターンを Signed Query に移行しました (Android編)

こんにちは、Androidエンジニアの@morux2です。スタディサプリ小学・中学講座ではデータ通信にGraphQLを採用しており、開発者が信頼したクエリのみを処理する仕組みとしてTrusted Documentsを実装しています。この度、従来のPersisted QueryからSigned Query…

Amazon アプリストアでスタディサプリ小学・中学講座を公開するまで

スタディサプリ小学・中学講座を開発している Android エンジニアの @maxfie1d と @omtians9425 です。 2024年2月26日にスタディサプリ小学・中学講座をAmazonアプリストアにて配信を開始致しました。 すなわち今後は Fire タブレット においてもスタディサ…

スタディサプリ小学・中学講座にRoborazziを導入して半年が経過しました

こんにちは、Androidエンジニアの@morux2です。 スタディサプリ小学・中学講座では、Visual Regression Test (以下 VRT)を実施しています。VRTは画像比較によるUIの回帰テストです。変更前後のコードそれぞれに対する画面のスクリーンショットを比較し、意図…

detekt × Dangerで、プルリクコメントにルール名を表示する

こんにちは。スタディサプリ Androidエンジニアの@morayl です。 本記事では、Kotlinの静的解析ツールであるdetektの解析結果をDangerでプルリクにコメントする際に、ルール名も一緒にコメントするためにしたことを紹介します。 Dangerの基礎言語であるRuby…

Android チームが使っている GitHub Actions のユニークな自動化レシピ集🍞👨‍🍳

スタサプ小中高を開発している Android エンジニアの@maxfie1d、@morayl とスタサプ ENGLISHを開発している Android エンジニアの田村です。 GitHub Actions(以下 GHA) はアプリをビルドしたりストアに配信したりすることに使えるのはもちろん、もっともっと…

スタディサプリ小学・中学講座でRoborazziを導入しました

こんにちは、Androidエンジニアの@morux2です。本記事ではスクリーンショットの撮影にRoborazziを導入した経緯をご紹介できればと思います。 はじめに きっかけ RoborazziとPaparazziの比較 書きやすさ 複数端末での撮影 スクロールした画面の撮影 Showkase…

Jetpack Composeでスポットライト機能を実装する

こんにちは、Androidエンジニアの@morux2です。本記事ではJetpack Composeでスポットライト機能を実装する方法を紹介します。 はじめに スポットライトは、特定の要素を目立たせることでユーザーの行動を促す機能です。スタディサプリ中学講座のオンボーディ…

「スタディサプリ中学講座」における最近の Jetpack Compose 関連の改善

はじめに こんにちは。「スタディサプリ中学講座」 で Android エンジニアをしている @maxfie1d です。「スタディサプリ中学講座」 では Jetpack Compose を最大限に活用しています。現在アプリ全体の 7 割程度の UI は Jetpack Compose で構築されています…

Jetpack ComposeでタブをSticky Headerにする方法

こんにちは。Androidエンジニアの@morux2です。先日スタディサプリ中学講座にまなレポ機能が追加されました まなレポは学習状況・学習履歴を確認できる機能です。リアルタイムで学習状況が表示されるので、学習後すぐに成果の振り返りをしていただくことがで…

Google Play In-App Reviews API の導入により Google Play Store 評価を1ヶ月で2.5から4.5に改善した話

こんにちは。Android エンジニアの @omtians9425 です。スタディサプリ中学講座の開発に携わっています。 今回は、 Google Play In-App Reviews API の導入により、スタディサプリ中学講座の Google Play Store 評価を4.5(2022年10月7日時点)に改善したこ…

Jetpack Compose を使って実際に画面を作ってみて

こんにちは。Android アプリ開発者の geckour です。 前回はデザインシステムの実装についての話をしましたが、今回はそちらを実際に運用してみた中間報告をしたいと思います。 はじめに 前回は、Jetpack Compose によってデザインシステムを構築するところ…

Jetpack Compose と GraphQL Fragment でつくるデザインシステム実装

こんにちは。Android アプリ開発者の geckour です。 今回は、デザインシステムの実装についての話をしたいと思います。

Android における Visual Regression Test tips 集 #2

こんにちは。Android エンジニアの @omtians9425 です。 今回は、 Visual Regression Test (以下 VRT) の tips 集の続編についてお話しします。 VRT の簡単な説明と前回の tips (tips 1~4) については こちら をご覧ください。 Tips 集 5. 「スワイプ」 で…

Android における Visual Regression Test tips 集 #1

こんにちは。Android エンジニアの @omtians9425 です。 今回は、弊 Android アプリ開発チームで取り組んでいる Visual Regression Test (以下 VRT)の tips 集についてお話しします。 はじめに 弊チームでは、実装初期の段階から unit test に加えて VRT を…

Epoxy と 入力フォーム

こんにちは。Android アプリ開発者の geckour です。 今回は、Android アプリ開発が便利になる Epoxy とそれを利用した入力フォーム作りについてお話しします。 はじめに 弊チームではリスト表示を含む UI の実装の際に、Epoxy を利用しています。 RecyclerV…

iOS/Androidチーム合同でユニットテストクロスレビューを行っている話

こんにちは。2020年6月から Quipper に参加している @omtians9425 です。現在新規プロジェクトにおいて Android アプリ開発を担当しております。 今回は弊プロジェクトの iOS/Android チーム合同で行っている、ユニットテストのケースを相互にレビューし合う…

新学習機能:ディクテーションの開発 ~ Android 編 ~

こんにちは。Android アプリエンジニアの geckour です。 今回は、スタディサプリ 中学/高校/大学受験講座 にて先日リリースした問題タイプ "ディクテーション" の Android アプリにおける実装についてお話します。

GraphQL + Apollo の世界 ~Android 編~

こんにちは。Android アプリ開発者の geckour です。 今回は、Android における GraphQL と Apollo についてお話しします。 はじめに Quipper では現在新規プロジェクトに取り組んでいて、その技術スタックの議論の中で「GraphQL を使っていきたい」という意…

Release Manager の負担を軽減する (Android 編)

Mobile Engineer の @chiiia12 です。今回は Android アプリのリリース作業の改善について紹介します。 Release Managerのしごと 私たち Android チームではアプリのリリース作業を担当するメンバーを Release Manager として当番制で回しています。 Release…

APIの開発に(なるべく)依存しないモバイルアプリ開発

Mobile Engineer の @chiiia12 です。 今回は試験的に私たちのチームで導入した "MockApiInterceptor" の取り組みについてご紹介します。 (今回は、Android アプリでの例を紹介します。) 背景 最初に私たちのチーム構成/開発の進め方について説明させてくだ…

コーディングテストを見直した話 ~Android アプリエンジニア採用編~

こんにちは。Android アプリエンジニアの geckour です。 今回は、Android アプリ開発チームが先日アップデートした採用活動におけるコーディングテストについてお話します。

スタディサプリ/Quipper Product Meetup #4 を開催しました!

2020-02-05(水)に「スタディサプリ/Quipper Product Meetup #4 〜スタディサプリのiOS/Android開発組織とアーキテクチャ〜」を開催しました。

Monitor and fix app's performance with Android vitals

Overview Hi! I am @padobariya again! working as a mobile engineer with Quipper (Japan office). In this post, I will talk about Android vitals and how to monitor your app's technical performance and some of the possible fixes. It is a tool …

Gradle Play Publisher プラグインをアップデートする

はじめましてこんにちは、4月に Native チームに加わった @geckour です。 今回は、Google Play Console の管理を自動化してくれる Gradle プラグインである Gradle Play Publisher のバージョンを v1.2.2 から v2.2.1 に上げた話をします。