スタディサプリ Product Team Blog

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

iOS

単一アプリでユーザに応じた機能切り替えを実現するために

はじめに iOSエンジニアのkomajiです。2023年9月に「スタディサプリ 小学講座」をリニューアルし、既存の「スタディサプリ 中学講座」アプリに組み込む形でリリースしました。 この小学講座は既存の中学講座とは機能が全く異なっていますが、単一アプリで両…

SwiftUI: Explicit Identity の正しい使い方と落とし穴

こんにちは。iOS エンジニアの @_nkmrh です。 SwiftUI が発表されてからはや4年が経ち、昨今のプロダクションコードでも多く活用されているのではないでしょうか。 そこで本稿では SwiftUI を活用する上で欠かすことのできない SwiftUI.View の Explicit Id…

Firebase Remote Config の変更内容を Slack に通知する

こんにちは、@manicmaniac です。スタディサプリ iOS アプリ開発チームのエンジニアリングマネージャーをしています。 小ネタみたいな話ではありますが、Firebase Remote Config の変更を Slack に通知するようにしたらちょっと便利だったので記事にしようと…

社内勉強会がきっかけでメモ帳機能を実装した話 with PencilKit

こんにちは、スタディサプリ開発チーム iOS エンジニアの @m-sugawara です。 スタディサプリの iOS アプリでは2~3ヶ月前に PencilKit を使ったメモ帳機能を公開したのですが、今回はその機能の開発〜公開まで至った流れについてご紹介したいと思います。 (…

スタディサプリ中学講座iOSアプリの開発環境

はじめまして!2022年の9月の中頃にジョインしたiOSエンジニアの@komajiです。まだ歴が浅くキャッチアップしている最中ではありますが、私が担当しているスタディサプリ中学講座のiOSアプリが2022年12月現在どのような環境で開発されているのかを紹介してい…

Xcode の Test Repetition 機能を利用して flaky test を自動リトライする

こんにちは、iOS エンジニアの @manicmaniac です。 現在スタディサプリ iOS アプリ開発チームのエンジニアリングマネージャをしています。 「スタディサプリ」ブランドで出ているアプリは数多くあるのですが、今回は今年リリースされたばかりの「スタディサ…

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日時点)に改善したこ…

「スタディサプリ 中学講座」の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では対応しきれず、ご…

iOS バージョン による SwiftUI の機能差分・制限まとめ

こんにちは。iOS エンジニアの wadash です。先月2022年2月に無事リリースした「スタディサプリ 中学講座」のチームで開発に携わっています。 今回は iOS バージョンによる SwiftUI の挙動差異と制限のまとめをご紹介します。 SwiftUI の採用とサポートバー…

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

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

不要な Swift コードを静的解析で安全かつ継続的に消していく

不要な Swift コードを静的解析で安全かつ継続的に消していく こんにちは、iOS エンジニアの @manicmaniac です。 現在スタディサプリ iOS アプリ開発チームのエンジニアリングマネージャをしています。 スタディサプリ iOS アプリは開発開始から7年以上が経…

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 の発表もそろそろとの噂でそちら…

「スタディサプリ」が 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を本格的に採用したプロジェクトになります。 背景 ネイティブアプリ開発に当たって、プッシュ通知を受信して…

サクッとわかる SwiftUI in WWDC 2020

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

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

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

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

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

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

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

Template設計から始めるiOS開発

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

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

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