スタディサプリ Product Team Blog

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

Native

「スタディサプリ」が React Native から卒業するまで、あるいは技術的負債への感謝と敬意

こんにちは、Quipper iOS エンジニアの @manicmaniac です。 現在スタディサプリ iOS アプリ開発チームのエンジニアリングマネージャをしています。 今回はスタディサプリで長らく使われていた React Native のコードを Swift に書き換えた話をします。 実は…

iOS アプリ開発とユニットテスト

はじめに こんにちは。iOS エンジニアの@nkmrhです。 本稿では、現在実践している iOS アプリ開発のユニットテストの Tips をご紹介します。 ユニットテストについてご興味のある方はこちらの記事(iOS/Androidチーム合同でユニットテストクロスレビューを行…

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

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

SwiftUIのディープリンク対応:プッシュ通知から画面遷移する方法

こんにちは!2020年9月からQuipperにジョインした、iOSエンジニアの @chuymaster です!現在新規サービスのiOSアプリ開発を担当しており、SwiftUIを本格的に採用したプロジェクトになります。 背景 ネイティブアプリ開発に当たって、プッシュ通知を受信して…

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

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

サクッとわかる SwiftUI in WWDC 2020

こんにちは。4月に入社したiOSエンジニアの中村(@nkmrh)です。 東京もそろそろ梅雨が明けて夏がやってきますね。 さて、先月は WWDC 2020 がオンラインで開催されました。SwiftUI の新機能も発表され、いよいよ実戦投入の気運が高まってきているのではない…

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開発組織とアーキテクチャ〜」を開催しました。

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 のデバッグに苦労し、そしてコードを書いてそれを克服した話を…

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

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

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

Template設計から始めるiOS開発

はじめまして、今年5月に入社したモバイルエンジニアの@stNamcoです。 今回はコーディング規約周りの取り組みを記事にしたいと思います。 TL;DR 複数のプログラマが参加するプロジェクトにおいては、プログラミング品質を均等にするためcoding規約を定めて…

Introduction to Kotlin Coroutines

Overview Hi! I am @padobariya working as a mobile engineer with Quipper (Japan office). In this post, I will talk about basics of Kotlin coroutines, as many of you may already know Kotlin coroutines are no longer experimental as of Kotlin …

React Nativeハイブリッドアプリへの挑戦 ~ Part3: 振り返り/今後 ~

本エントリは3部作のPart3となっております。 Part1: Monorepo/CI Part2: 導入/Bridge Part3: 振り返り/今後 モバイルエンジニアの@hotchemiです。 Part1、2では実際にインテグレーションを進めてきた中で得られた知見を公開してきましたが、今回は半年程の…

React Nativeハイブリッドアプリへの挑戦 ~ Part2: 導入/Bridge ~

本エントリは3部作のPart2となっております。 Part1: Monorepo/CI Part2: 導入/Bridge Part3: 振り返り/今後 モバイルエンジニアの@hotchemiです。 Part1からすっかり時間が空いてしまい恐縮ですが引き続き弊社のReact Nativeハイブリッドアプリの取り組みに…

iOSDC Japan 2018に2名が登壇&ボトルウォータースポンサーのお知らせ

こんにちは。@hotchemiです。 来たる8/30〜9/2に早稲田大学 西早稲田キャンパスで実施されるiOS開発者のカンファレンスiOSDC Japan 2018にQuipperから2名が登壇致します。 登壇スケジュールと内容は以下の通りです。

React Nativeハイブリッドアプリへの挑戦 ~Part1: Monorepo/CI~

本エントリは3部作のPart1となっております。 Part1: Monorepo/CI Part2: 導入/Bridge Part3: 振り返り/今後 モバイルエンジニアの@hotchemiです。 数週間前にReact Native at Airbnb(非公式の日本語訳)が世間を賑わせましたが、皆様いかがお過ごしでしょう…

モバイルエンジニアが H.265/HEVC 使った方がいい理由(わけ)

こんにちは。モバイルエンジニアの@daisukefujiです。 少し前になりますが、WWDC 2017 にてH.265/high-efficiency video coding(HEVC) のサポートが発表されました。 iOS デベロッパーの方はご存知だと思いますが App Store審査ガイドライン に以下のビデオ…