スタディサプリ Product Team Blog

https://blog.studysapuri.jp/

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

フィード

記事のアイキャッチ画像
「比較言語学のススメ -Ruby vs. Python に学ぶ言語のアイデンティティ-」というタイトルで地域.rb の LT 会で発表してきました!
スタディサプリ Product Team Blog
2025年02月の地域.rb の LT 会にて発表した「比較言語学のススメ -Ruby vs. Python に学ぶ言語のアイデンティティ-」のサマリー記事です。
2日前
記事のアイキャッチ画像
イラストでわかるRAGを用いたbot開発~生成AIを使った開発の知識を深めよう~
スタディサプリ Product Team Blog
こ〜んにちは〜!スタディサプリ小中高SREの@_a0iです。 先日RECRUIT TECH CONFERENCE 2025 プレイベントで「イラストでわかるRAGを用いたbot開発」と題してLTを行いました。 資料もアップされています。 speakerdeck.com (首痛いポーズがいいですね〜!) 資料を見ていただければ終わりではあるのですが、せっかくなのでブログで補足しながら説明しようと思います。 この分野についてちょっとでも気になる!という方に向けて改めて生成AI周りで登場する用語を整理してお伝えできればと思います。 なるべく平易な言葉を使うことで、開発者ではない方も含めて理解してもら…
10日前
記事のアイキャッチ画像
講義動画における生成 AI を活用した字幕生成
スタディサプリ Product Team Blog
こんにちは、『スタディサプリ』の iOS エンジニアのヴァンサンです。 先日、『スタディサプリ』の一部の講座の動画に日本語字幕が追加されました。音声と同じ言語の字幕は、聴覚に障がいのあるユーザーだけでなく、音声が聞こえづらい環境や、イヤホンが手元になく音を出せない環境でも有用です。さらに、字幕データ自体も検索や内容のまとめなど、さまざまな用途での活用が期待できます。そのデータがなければ、せっかく制作したコンテンツをフル活用できないでしょう。 この記事では、私たちが自動生成を選んだ経緯や字幕生成のプロセスを紹介します。私の生成 AI に関する知識はまだ浅く、改善の余地は多分にあります。また、AI…
18日前
記事のアイキャッチ画像
スタディサプリ小中高のフロントエンド技術戦略と課題解決の歩み
スタディサプリ Product Team Blog
こんにちは。技術戦略フロントエンドGのマネージャーをしている @kuranari です。 本記事では、スタディサプリ小中高のフロントエンド技術戦略活動について紹介します。 技術戦略グループとは スタディサプリ小中高のプロダクト開発部には「プロダクト開発組織とそのシステムをより変化に強くする」ことを目的とした技術戦略ワーキンググループ(以下WG)が存在します。現在は、横断WG、フロントエンドWG、DevOpsWGの3つのワーキンググループがそれぞれの技術領域に置いて、戦略立案や負債解消の計画づくりを進めています。 本記事では、ワーキングループの一つである「フロントエンドWG」の取り組みを紹介しま…
24日前
記事のアイキャッチ画像
RECRUIT TECH CONFERENCE 2025 で『スタディサプリ』の開発組織を紹介しました
スタディサプリ Product Team Blog
こんにちは、Androidエンジニアの@morux2です。先日 RECRUIT TECH CONFERENCE 2025 にて、「エンジニア主導の企画立案を可能にする組織とは?『スタディサプリ小学講座』に新機能がリリースされるまで」というLTを行いましたので、発表内容のサマリを共有させていただきます。(当日の10分でお伝えしきれなかった内容も補足しております!) 発表資料はこちらになります。 speakerdeck.com アーカイブも公開されましたので、ぜひご覧ください。 youtu.be 導入 Point 1. 情報へのオープンアクセス 1. 技術的な興味関心 2. ユーザー価値 3. 事…
1ヶ月前
記事のアイキャッチ画像
monorepo で Cursor Project Rule を扱う Tips
スタディサプリ Product Team Blog
こんにちは、@chaspy です。開発部長をしています。本日は小ネタで失礼します。 私たちは普段、monorepo で開発しています。monorepo については過去色んな記事で言及されているのでぜひご覧ください。 blog.studysapuri.jp blog.studysapuri.jp 最近、monorepo で Cursor Project Rules を管理する仕組みを整えたので、その話をします。 Cursor Project Rules の課題 さて、読者の皆さんの周囲でも利用している人は多いかと思いますが、AI エージェント系の開発ツールを利用しておりまして、私たちの組織では …
1ヶ月前
記事のアイキャッチ画像
再エンコード無しで、HLS動画への字幕の追加を実現する
スタディサプリ Product Team Blog
こんにちは、動画基盤チームの @kumackey です! 2月17日に、『スタディサプリ高校講座』に生成AIを活用した字幕表示機能が追加されました! まずはブラウザ版・特定講座での提供となりますが、今後提供範囲の拡大も検討していきます。 参考: 『スタディサプリ高校講座』、講義動画に字幕表示 音声文字起こし生成AI活用で、聴覚障がい者も利用しやすく まずは「数学Ⅰ/A」「情報Ⅰ」で 本記事では、字幕をHLSで配信させる方法についてご紹介したいと思います。 字幕の種類 字幕には大きく以下の2種類あります: Open Captions:常に表示される字幕 Closed Captions:表示・非表…
1ヶ月前
記事のアイキャッチ画像
【番外編】スクリプト言語と GitHub Actions で GitHub Wiki に秩序をもたらそう! Vol.4 -しくじり編-
スタディサプリ Product Team Blog
「スクリプト言語と GitHub Actions で GitHub Wiki に秩序をもたらそう! 」シリーズ第4弾です。Ownership 単位で Wiki の Markdown ファイルをディレクトリごとに整理して Revisions を吹っ飛ばし、現状復帰させるまでの辛いお話です。
2ヶ月前
記事のアイキャッチ画像
【本編】スクリプト言語と GitHub Actions で GitHub Wiki に秩序をもたらそう! Vol.3 -自動化ワークフロー実装編-
スタディサプリ Product Team Blog
「スクリプト言語と GitHub Actions で GitHub Wiki に秩序をもたらそう! 」シリーズ第3弾です。スクリプト日時実行結果と Ownership 不在 Wiki 件数週次報告 Slack 通知の GitHub Actions の実装のお話です。
2ヶ月前
記事のアイキャッチ画像
【本編】スクリプト言語と GitHub Actions で GitHub Wiki に秩序をもたらそう! Vol.2 -スクリプト実装編-
スタディサプリ Product Team Blog
「スクリプト言語と GitHub Actions で GitHub Wiki に秩序をもたらそう! 」シリーズ第2弾です。自動化スクリプトの実装のお話です。
2ヶ月前
記事のアイキャッチ画像
Flutterアプリ開発に欠かせないbuild_runner速度アップTips
スタディサプリ Product Team Blog
Dartチームがmacrosの開発をストップしたことを受けて、緊急でブログとビルドを回しております。 ForSCHOOL開発グループの @koji-1009 です。 medium.com macrosの開発停止に伴い、Dartチームはbuild_runnerのパフォーマンス向上とdata classの実現に注力する旨の表明をしています。 これらの機能は、macrosにより代替される想定でした。このため、この発表は単純な開発の停止ではなく、よりDartを安定化させつつ要望の多い機能を実現する発表であると感じています。 とはいえ、build_runnerの改善に期待したいのですが、改善がリリースさ…
2ヶ月前
記事のアイキャッチ画像
iOS Dynamic Type を中心にアプリ内ブラウザーで文字サイズ調整対応
スタディサプリ Product Team Blog
こんにちは、『スタディサプリ』の iOS エンジニアのヴァンサンです。 iOS でユーザーが文字サイズを調整できる機能を Dynamic Type と言います。iOS アプリ開発では UIKit や SwiftUI での Dynamic Type 対応に関する情報が多く見つかりますが、この記事ではウェブページでの実装方法を説明します。また、Android のフォントサイズ設定についても触れながら、マルチプラットフォームでの文字サイズ調整対応について解説します。 コンテキスト 『スタディサプリ小学・中学講座』iOS アプリは主に SwiftUI で書かれていますが、動画視聴や問題回答をする学習画…
2ヶ月前
記事のアイキャッチ画像
【本編】スクリプト言語と GitHub Actions で GitHub Wiki に秩序をもたらそう! Vol.1 -泥臭い手作業編-
スタディサプリ Product Team Blog
「スクリプト言語と GitHub Actions で GitHub Wiki に秩序をもたらそう! 」シリーズ第1弾です。自動化前の布石にあたるお話です。
2ヶ月前
記事のアイキャッチ画像
CXプラットフォームKARTEを活用したコスパの良い機能開発のススメ
スタディサプリ Product Team Blog
こんにちは。スタディサプリ小中高のWebアプリの開発を担当している @kiki-ki と tsukamoto です。 スタディサプリでは5年ほど前からCXプラットフォームとして KARTE という外部サービスを利用しています。本記事では私たちのチームでのKARTEの活用方法について紹介します。 はじめに: KARTE導入の背景 スタディサプリでの活用事例 プレトタイピング ABテストでの活用 終わりに はじめに: KARTE導入の背景 KARTEの機能についての詳細は割愛します。公式の サービスページ を参照ください。 KARTEではユーザーの属性やアクションに合わせて接客内容をリアルタイムに…
3ヶ月前
記事のアイキャッチ画像
小学背景デザインのご紹介と実装上の工夫
スタディサプリ Product Team Blog
こんにちは。iOS エンジニアの @_nkmrh です。 今回は『スタディサプリ 小学講座』の背景画面のデザインについてご紹介します。 1 月から 12 月までの季節感やイベントを踏まえた複数バリエーションの背景をいかに効率よく実装したか、デザイナーとのコミュニケーションコストをどのように最適化したかをまとめました。 1. 小学背景とは? 「小学背景」は、小学生向けの学習アプリ用にデザインされた、子どもたちが親しみやすい雰囲気を意識した背景デザインです。 1〜12 月の季節感を反映している シンプルかつかわいらしいイラストやモチーフを採用している 私たちは、月ごとのバリエーションを用意すること…
3ヶ月前
記事のアイキャッチ画像
SwiftUI の NavigationStack の実践的な使い方と制限の克服
スタディサプリ Product Team Blog
あけましておめでとうございます。 スタディサプリの iOS エンジニアのヴァンサンです。 最近、スタディサプリ 小学・中学講座 iOS アプリ(以下スタサプ小中 iOS)で SwiftUI のナビゲーション周りの改善に取り組んできました。SwiftUI のナビゲーション API が iOS 16 で大きく変更され、スタサプ小中 iOS でもその対応が必要になりました。 これまでは、NavigationView と NavigationLink(isActive:...) を使用してナビゲーションを実装してきました(以前の実装については、こちらの記事をご覧ください)。しかし、アプリの iOS 1…
3ヶ月前
記事のアイキャッチ画像
開発組織が事業貢献するには
スタディサプリ Product Team Blog
こんにちは。@chaspyです。『スタディサプリ 小学・中学・高校講座(以下、スタディサプリ小中高)』の開発部長をしています。この記事はスタディサプリProduct Team Advent Calendar 2024の25日目の記事です。 まずはじめに、このアドベントカレンダーを執筆してくださった皆さん、そして運営をしていただいたEngieering Office Team*1の皆さん、レビューいただいた広報関係者の皆さん、本当にありがとうございました。はじめての取り組み、かつ急に決まったにも関わらず、無事全ての枠が埋まり、公開できたことを嬉しく思います。この場を借りてお礼申し上げます。 本稿…
3ヶ月前
記事のアイキャッチ画像
Jenkins から Argo Workflows 移行に挑戦した話
スタディサプリ Product Team Blog
Merry Christmas! SRE Team の @panicboat です。 突然ですが、皆さんはジョブ基盤に何を使っていますか? Jenkins や Digdag、Apache Airflow など多くの選択肢があり組織にマッチするものを選択するだけでも苦労しますよね。 今回はジョブ基盤を Jenkins から Argo Workflows に移行している件について話していこうと思います。 移行前の状況 私たちは Jenkins をジョブ基盤として使っています。Jenkins とは CI/CD に関連するタスクの自動化を行うことができる OSS です。 多くのジョブは Jenkins…
3ヶ月前
記事のアイキャッチ画像
oapi-codegen の strict-server オプションを使ってより硬くサーバーサイドを実装する
スタディサプリ Product Team Blog
スタディサプリ小中高でエンジニアリングマネージャーやソフトウェアエンジニアをしている @pankona です。 本稿では oapi-codegen の strict-server オプションを使った開発事例を紹介します。 OpenAPI と oapi-codegen OpenAPI とは、Web API の仕様を記述するための規格のひとつです。どのパスがどんなリクエストを受け付けてどんなレスポンスを返すのか、という情報を yaml もしくは json の形式で記述することができます。以下は公式サイトです。2024年12月現在、OpenAPI 3.1.0 が最新バージョンのようです。 swagg…
3ヶ月前
記事のアイキャッチ画像
Xcode ProjectにローカルのSwift Packageを追加する2つの方法の違い
スタディサプリ Product Team Blog
背景 まず、Swift Package、Xcode Project、およびXcode ProjectにSwift Packageを追加する方法について説明します。なお、説明は全てXcode 15.4の挙動に基づいています。 Swift PackageはSwiftのソースコードや関連するリソースファイルを1つにまとめる仕組みです。同じくSwiftを使うiOSアプリ開発と親和性が高く、iOSアプリ開発に用いられるXcodeという統合開発環境からよく参照されます。XcodeではソフトウェアをProjectという単位に分けて管理することが可能なのですが、このXcode Projectにローカルに存在す…
3ヶ月前
記事のアイキャッチ画像
k6+TypeScriptでRSA公開鍵を用いたチャレンジレスポンス認証を突破する
スタディサプリ Product Team Blog
k6+TypeScriptでRSA公開鍵を利用し、各VUごとにAPIのチャレンジレスポンス認証を突破する手法について紹介します。
3ヶ月前
記事のアイキャッチ画像
エンジニアリングマネージャーはいいぞ
スタディサプリ Product Team Blog
こんにちは。スタディサプリの開発組織でエンジニアリングマネージャー(以下、EM)をしている @ojiry です。 本稿はスタディサプリProduct Team Advent Calendar 2024 20日目の記事になります。 私はEMになってから3年と3ヶ月ほど経つのですが、その中で得たEMという職種への学びやキャリアの魅力を簡単に紹介できればと思います。この記事を読んでEMやってみたいなと思える方が1人でも増えてくれると嬉しいです! いきなりだけどEMってとても楽しいよ! EMの業務について、みなさんはどのようなイメージを持っていますか?ピープルマネジメントや組織開発、事務作業などが思い…
3ヶ月前
記事のアイキャッチ画像
Credential Managerに移行するために調べたこと
スタディサプリ Product Team Blog
こんにちは。スタディサプリ Androidエンジニアの@moraylと@omtians9425 です。 スタディサプリのAndroidアプリでは、ID/パスワードの記憶に CredentialsApiを使っている箇所がありました。現在はCredential Managerが推奨となっており、そちらへ移行するために調べたことをまとめました。 「ID/パスワードの記録」の性質上、実装の確認や検証では「その記録をリセットする」ことが必要になるので、その方法についても解説します。 ライブラリandroidx.credentials:credentials は1.3.0を利用しました。 移行の背景 Sm…
4ヶ月前
記事のアイキャッチ画像
現在時刻に依存する機能の動作確認コストを下げる基盤 -Time Injection-
スタディサプリ Product Team Blog
こんにちは。スタディサプリ小学・中学講座の Engineering Manager をしている @ywada526 です。 今回は、現在時刻に依存する機能の動作確認コストを下げる基盤について紹介します。この基盤は、社内ではコード上の名前をとって「Time Injection」という愛称 1 で呼ばれています。この記事内でも Time Injection という名前を使って説明します。 みなさんは、現在時刻に依存する機能の動作確認や品質保証はどのように行なっていますか。「時刻を固定した環境を用意する」「データを弄る」「ユニットテストで担保するから動作確認はしない」「コードをじっと見つめて問題ない…
4ヶ月前
記事のアイキャッチ画像
『プログラマが知るべき97のこと』に学ぶ5つの金科玉条
スタディサプリ Product Team Blog
『プログラマが知るべき97のこと』を通読して得た特に重要な5つの教訓を筆者の独断と偏見と好奇でピックアップしました。
4ヶ月前
記事のアイキャッチ画像
New Joiner こそ Working Out Loud ~ 具体的な実践方法と実践に向けた姿勢 ~
スタディサプリ Product Team Blog
こんにちは。24 卒で入社し、7 月から『スタディサプリ小学・中学講座』の開発チームで Web エンジニアをしている @ryomaejii です。 本記事は スタディサプリ Product Team Advent Calendar 2024 17 日目の記事で、 私が大切にしている考え方である Working Out Loud について紹介し、New Joiner こそ Working Out Loud するべき理由について話していきます。 対象読者 New Joiner これから New Joiner を受け入れるチームのメンバー リモートで働く機会のある全ての方々 Working Out …
4ヶ月前
記事のアイキャッチ画像
スタディサプリ動画基盤におけるFastlyの利用と陥った落とし穴
スタディサプリ Product Team Blog
はじめに こんにちは、スタディサプリのプロダクト基盤...その中でも特に動画基盤の開発を行っている @highwide です。 これは スタディサプリProduct Team Advent Calendar 2024 16日目の記事です。 今日は動画基盤チームで利用しているFastlyの構成や、我々がハマってしまった落とし穴について書きたいと思います。 これは自分で掘った穴にハマっている長男です 動画基盤におけるFastlyの使い方 スタディサプリでは、動画の配信はFastlyを通じてHLS(HTTP Live Streaming)*1によって行っています。 HLSでは、動画再生のために必要な…
4ヶ月前
記事のアイキャッチ画像
将来のプロダクト状態を考えて技術改善を計画する
スタディサプリ Product Team Blog
スタディサプリ小学・中学講座の iOS アプリエンジニアをしている @komaji です。本稿は スタディサプリProduct Team Advent Calendar 2024 15日目の記事で、私が所属する iOS チームでの技術改善の取り組み方について紹介していきます。 技術改善を計画する 継続的にプロダクトを開発する上では、技術的負債の返済や品質改善、開発者体験の改善といった技術的な改善が重要です。例えば、コードのリファクタリングやテスト自動化の導入が挙げられます。 これらの改善は一度実施して終わりではなく、プロダクトの成長や環境の変化に応じて継続的に実施する必要があります。しかし、全…
4ヶ月前
記事のアイキャッチ画像
エンジニアリングオフィスチームを結成しました
スタディサプリ Product Team Blog
はじめに こんにちは。スタディサプリの開発グループでエンジニアをしている @ttokutake です。 本稿は 技術広報 Advent Calendar 2024 シリーズ 2の14日目の記事です。 今回はスタディサプリの開発グループ内でエンジニアリングオフィスチームを結成した話をしようと思います。 エンジニアリングオフィスとは スタディサプリにおけるエンジニアリングオフィスチームは「スタディサプリの開発組織において、開発者のエンゲージメントを高め、開発組織の良き文化を醸成し、ブランディングしていくこと」を使命としています。 我々の活動の多くはメルカリさんの Engineering Offic…
4ヶ月前
記事のアイキャッチ画像
FlutterKaigi 2024に登壇しました
スタディサプリ Product Team Blog
こんにちは。『スタディサプリ for SCHOOL』 の開発に携わっている @koji-1009 です。 この記事はスタディサプリProduct Team Advent Calendar 2024 14日目の記事になります。カレンダー2週目も今日で終わりです。 本稿ではFlutterKaigi 2024に参加し、登壇した際の内容の補足などをします。特に、セッション時間の関係で省いたものが多いWeb対応について書きます! FlutterKaigi 2024 セッションについて Flutter Web対応について CanvasKit x ヒラギノ角ゴシック HTMLレンダラー x iOS x No…
4ヶ月前