スタディサプリ Product Team Blog

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

Engineering-Native

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 によってデザインシステムを構築するところ…

「スタディサプリ 中学講座」のSwiftUI x In-App Purchase設計と結合テストのノウハウ

こんにちは!iOSエンジニアの @chuymaster です。今回は私たちのチームが2月にリリースした「スタディサプリ 中学講座」のIn-App Purchase(IAP)の実装について書きたいと思います。SwiftUI x IAPの事例をお探しの方必見です! 背景 「スタディサプリ 中学…

SwiftUI.NavigationView のバックボタンをカスタマイズする方法

こんにちは。iOS エンジニアの @_nkmrh です。 最近、Full SwiftUI で開発したスタディサプリ 中学講座をリリースし、アプリ開発の醍醐味を味わっています。 はじめに 本稿では、スタディサプリ中学講座 iOS アプリで実装した SwiftUI の NavigationView の…

SwiftUIで対応しきれずUIKitを使ったコンポーネントのまとめ

こんにちは、iOSエンジニアの @elliekwon です。去年のiOSDC Japan 2021「スタディサプリ」がFull SwiftUIを選択した先に見えてきたものの発表で紹介させて頂いた通り、SwiftUIで開発してきた「スタディサプリ中学講座」ですが、SwiftUIでは対応しきれず、ご…

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. 「スワイプ」 で…

SwiftUI x Combineのメモリリークを防ぐ3つのTips

こんにちは!iOSエンジニアの @chuymaster です!私たちのチームが2年近くかけて開発した 「スタディサプリ 中学講座」 のiOSアプリがようやくリリースされました! いやぁ〜みんなで頑張りましたよ!中学生のお子様がいらっしゃる方はぜひお試しください! …

SwiftUIの隠しNavigationLinkを使って画面遷移をプログラムで制御する

こんにちは、iOSエンジニアの @chuymaster です!iOSDC Japan 2021の「スタディサプリ」がFull SwiftUIを選択した先に見えてきたもの。のトークセッションで紹介された、プログラムで画面遷移を制御する方法について詳しく解説します。トークで話しきれなか…

SwiftUIで全画面モーダルを無限に重ねる

こんにちは、iOSエンジニアの @chuymaster です!iOSDC Japan 2021の「スタディサプリ」がFull SwiftUIを選択した先に見えてきたもの。のトークセッションの時間の都合上、ご紹介できなかった「全画面モーダルを重ねる」実装方法をご紹介します。 全画面モー…

SwiftUI でカスタムアニメーションを簡単に実装する

こんにちは。iOS エンジニアの @wadash です。 今回は iOSDC Japan 2021 のセッション「スタディサプリ」がFull SwiftUIを選択した先に見えてきたもの。で紹介した、 SwiftUI におけるアニメーションの実装方法方法について詳しく解説します。 SwiftUI のア…

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

こんにちは、iOSエンジニアの @motoshima1150 です。 iOSDC Japan 2021の「スタディサプリ」がFull SwiftUIを選択した先に見えてきたもの。のトークセッションで収まりきれなかったTipsを紹介いたします。 はじめに 本記事では、Spotlight機能の実装方法につ…

SwiftUI コーディングガイドのすすめ

こんにちは iOS エンジニアの @_nkmrh です。 先日 iPhone 13, iPad mini 等が発表されましたね!私は手元の iPhone がまだ現役なので購入の予定はないのですが、Apple Store で見られるのが楽しみです...! 新型 MacBook Pro の発表もそろそろとの噂でそちら…

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 チーム合同で行っている、ユニットテストのケースを相互にレビューし合う…

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

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

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

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

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

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

Kotlin の scope functions との上手な付き合い方

こんにちは、Native チームの @geckour です。 今回は、Kotlin の便利な関数である scope functions の概要と、そのうまい使い所の話をします。

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 …

iOSDC Japan 2019 ボトルウォータースポンサーのお知らせ

こんにちは。@isaoekaです。 iOSDC Japan 2019まで、いよいよ1週間を切りました! Quipperは昨年に引き続き、今年もボトルウォータースポンサーを致します!

iOS GraphQL クライアントのデバッグツールを作った話

こんにちは、今年の4月から Quipper の iOS エンジニアになった @manicmaniac です。 ちょっと話題としてはニッチかもしれないのですが、今日は Apollo iOS client を利用したアプリで GraphQL のデバッグに苦労し、そしてコードを書いてそれを克服した話を…

Android対応から見つめるReact Native

モバイルエンジニアの@chiiia12です。 先日@m-sugawaraからReact Native開発全般についての記事が公開されましたが、今回はAndroid対応にフォーカスして紹介します。 QuipperではReact Nativeで書かれた業務用アプリがあり、iOSでのみ提供していました。対象…

ReactNativeに入門して感じたこと

こんにちは。モバイルエンジニアの@m-sugawaraです。 弊社ではReact Nativeを使って作られたアプリがいくつかあります。 今回はReact Nativeほぼ未経験で入社した私が、三ヶ月ぐらいReact Nativeの開発に参加して感じたことをつらつらと書きます。

WorkManager for Everyone

Whether you are a newbie in Android Developer or a Jedi Developer, you have undoubtedly heard about this new API in Jetpack library. WorkManager is the latest way of handling background processing and at the same time respecting the device…

モバイルチームを支える小さな作業効率化たち

モバイルエンジニアの@chiiia12です。 私がQuipperのモバイルチームにjoinした際に驚いたことの一つが、自動化スクリプト/便利ツール等が多く使われていることでした。 今回はモバイルチームで最近導入されたものをいくつか紹介したいと思います。

kapt上でのコード生成をテストするkompile-testingのご紹介

@hotchemiです。みなさんは、やっていますか? 今回は、業務とは関係ない趣味で作ったkompile-testingの話をします。

React Nativeアプリのメモリリークを追いかける

モバイルエンジニアの@hotchemiです。 今回は少し前にReact Nativeアプリの開発中にメモリリークを調査、解決した体験が学びが多かったので調査の顛末を共有できればと思います。

React Nativeで外界の状態変化をRedux上で取り扱う

モバイルエンジニアの@hotchemiです。 今回はquipper/redux-rn-misc-enhancerについて軽く紹介させて頂きます。 github.com