Studyplus Engineering Blog

スタディプラスの開発者が発信するブログ

Studyplus Engineering Podcast #27: 新卒Webアプリエンジニアの1年目の業務と競技プログラミング

こんにちは、クライアントグループの樋口です。 スタディプラスのエンジニアが配信するポッドキャスト「Studyplus Engineering Podcast」の新しいエピソードを公開しました。 「Studyplus Engineering Podcast」は、主にStudyplusのエンジニアが、業務で関わ…

FlutterNinjas Tokyo 2024 参加レポート

こんにちは、クライアントグループ エンジニアの後藤です! 今回は6/12~14にかけて行われたFlutterNinjas Tokyo 2024に参加してきたのでその感想などをシェアします! はじめに FlutterNinjas Tokyoは海外から多数のスピーカーを招いて行われるFlutterのカン…

Studyplus iOSアプリのプライバシーマニフェスト対応事例

iOS

プロダクト部クライアントグループの明渡です。 成長曲線上辺すれすれで推移していた息子が、1歳半検診で成長曲線を上限突破していることが判明しました。 あの曲線って至極健康な範疇でも突破することあるんですね、びっくりしました。 今回は、iOSアプリに…

Widgetbookを使ってFlutterのデザイン調整を効率化する方法

クライアントグループの隅山です。 Flutterの標準Widgetをデザイン調整する際、どの範囲でデザイン調整できるのかをデザイナーと頻繁にやり取りすることがありました。 その中でWidgetbookというツールを活用することで、デザイン調整にかかる工数を大幅に削…

Studyplus Engineering Podcast #26 RubyKaigi 2024 参加レポート

こんにちは、SREグループの水口です。 スタディプラスのエンジニアが配信するポッドキャスト「Studyplus Engineering Podcast」の新しいエピソードを公開しました。「Studyplus Engineering Podcast」は、主にStudyplusのエンジニアが、業務で関わった技術的…

スタディプラスはFlutterNinjas Tokyo 2024にコミュニティスポンサーとして協賛します

こんにちは! スタディプラス/カンファレンス・OSSサポートチームの後藤です。 スタディプラスは、2024年6月13,14日の日程で開催される「FlutterNinjas Tokyo 2024」にコミュニティスポンサーとして協賛します。 flutterninjas.dev FlutterNinjas Tokyo 2024…

ElastiCacheのメモリ使用率削減

こんにちは。サーバーサイドエンジニアの青山です。 今回は、ElastiCache for Redisのメモリ使用率を削減したときのことを紹介します。 はじめに 現状把握 対応案の検討 実際の対応 対応後 おわりに はじめに 早速ですが、Studyplusにはタイムラインという機…

RubyKaigi 2024 参加レポート

こんにちは!スタディプラスがスポンサーしていたRubyKaigi 2024にエンジニア4名が参加しました。その参加レポートをお送りします。 tech.studyplus.co.jp RubyKaigiを楽しむためにやってよかったこと 事前勉強会 RubyKaigiは言語のコア部分に関わる発表が多…

スタディプラスはRubyKaigi 2024にゴールドスポンサーとして協賛します

こんにちは、スタディプラスのカンファレンス/OSSサポートチーム、菅原です。 RubyKaigi 2024がいよいよ来週開催に迫ってきました! 今年もスタディプラスはRubyKaigi 2024にゴールドスポンサーとして協賛しています。 rubykaigi.org 今年は沖縄県那覇市で開…

生成AIを活用したPodcastのShow Notes作成の裏側

こんにちは、SREグループの 水口 です。 この記事では、スタディプラスが運営する「Studyplus Engineering Podcast」の公開までに行なっているPodcastのShow Notesを作成する過程について紹介します。 Show Notesと生成AI活用のモチベーションについて Show …

Ruby3.3 YJITによるパフォーマンス改善

こんにちは。サーバーサイドグループの山田です。 先日StudyplusのRailsアプリケーションのRubyを3.3にアップデートしました。 Ruby3.3ではYJITによるパフォーマンス改善が目玉の1つですが、弊社のアプリケーションでどのような変化があったかを報告します。…

Studyplus Engineering Podcast #25 Studyplus Web版をFlutter Webでリプレイスしました!

こんにちは、SREグループの 水口 です。 スタディプラスのエンジニアが配信するポッドキャスト「Studyplus Engineering Podcast」の新しいエピソードを公開しました。 「Studyplus Engineering Podcast」は、主にStudyplusのエンジニアが、業務で関わった技…

Studyplus Engineering Podcast #24 遠距離からフルリモートで働くエンジニアの働き方、スタディプラスの印象、雑談

こんにちは、スタディプラス VPoEの大石です。 スタディプラスのエンジニアが配信するポッドキャスト「Studyplus Engineering Podcast」の新しいエピソードを公開しました。 「Studyplus Engineering Podcast」は、主にStudyplusのエンジニアが、業務で関わ…

CircleCIのrerun failed testsを有効化してみる

ウェブアプリケーショングループのましばです。 ようやく暖かくなってきましたが、まだまだ気候が安定しませんね。 今回はCircleCIにきていたrerun failed testの機能を使ってみた話です。 Flakyなテスト プログラミングを実装する際にテストを書いていく中…

Rails7.1へのアップグレードで発生した暗号化のエラーとその対応

こんにちは。サーバーグループ エンジニアの山田です。 今回はRails7.0からRails7.1へのアップグレードを行なった際に、ActiveRecord Encryptionで発生したエラーとその対応について紹介します。 同様のエラーに遭遇した方の参考になれば幸いです。 ActiveRe…

競プロ勉強会を開催しました

はじめに 2023年7月からWebアプリケーショングループの内定者インターンとして働いている羽鳥です。 インターンでは研修としてRuby、Ruby on Rails、RSpec、データベース設計、オブジェクト指向プログラミング、Reactなどを学んでいます。 私は趣味で競技プ…

rspec-openapiを導入した話

こんにちは、サーバーサイドグループの五十嵐です。 今年の4月に弊社に転職して初めて技術ブログを書きます。 今回はAPIドキュメントの作成ツールとしてGemrspec-openapiを導入した話について書いてみます。 弊社では以前からOpenAPIを導入しドキュメント管…

RubyによるGoogleSSO IDトークンの検証

こんにちは、サーバーサイドグループエンジニアの芳賀です。 今回は、業務で関わる機会があったため、Rubyを使用してgoogleauthライブラリを介してGoogleSSO IDトークンを検証する方法について解説します。Google Sign-Inを使用すると、ウェブアプリケーショ…

go_routerによる画面遷移時のパラメーターの渡し方

こんにちは。クライアントグループの上原です。 StudyplusのFlutterアプリでの開発には、go_routerが利用されています。 今回は、利用していて感じたどういう状況でどの方法を利用して画面遷移時にパラメーターを渡すのが良いのかを紹介します。 また、上記…

スタディプラスに新卒入社してからの半年間を振り返る

はじめに どうも、クライアントグループエンジニアの後藤です。 最近寒くなってきましたね。昔は冬が圧倒的に好きだったんですが、歳を重ねるごとに夏の方が好きになっていっている自分がいます。 そんな自分がスタディプラスに入社してからもう半年が経ちま…

新規プロジェクトでモブ設計を実施してみた

こんにちは。ウェブアプリケーショングループのエンジニアの川井です。 最近、新しいプロジェクトを立ち上げる際、開発を始める前に新しい仕様や設計に関する整理やコミュニケーションを強化するため、モブ設計を導入しました。この記事では、モブ設計の概要…

スタディプラスはJSConf JP 2023に協賛します

こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、後藤です。 スタディプラスは、2023年11月19日に九段坂上KSビルにて開催されるJSConf JP 2023に協賛します。 jsconf.jp JSConf JP 2023とは? JSConf JPはJapan Node.js Associationが主催…

FlutterKaigi 2023にスポンサー&参加しました

こんにちは!クライアントグループの後藤です。 11月10(金)に株式会社ナビタイムジャパンにて開催されたFlutterKaigi 2023に参加してきたので、その感想などをまとめます。 はじめに 今回、弊社スタディプラスはFlutterKaigi 2023にシルバースポンサーとして…

FlutterでDriftを使ったデータ保存でのつまづきと対策

こんにちは、クライアントグループの樋口です。 今回は、弊社のアプリにてFlutterで使えるローカルDBパッケージの「Drift」を用いた開発した際に生じた、データ保存でのつまづきとその対処法を紹介します。さらに、Driftの簡単な使い方と使用例も併せて紹介…

スタディプラスはFlutterKaigi 2023にシルバースポンサーとして協賛します

こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、後藤です。 スタディプラスは、2023年11月10日に開催されるFlutterKaigi 2023に、シルバースポンサーとして協賛します。 flutterkaigi.jp FlutterKaigi 2023とは? FlutterKaigiは、国内で…

Amazon Aurora MySQLのRollbackSegmentHistoryListLength

こんにちは。サーバーサイドエンジニアの青山です。 先日、弊社のAmazon Aurora MySQLのCPU負荷が急に上昇してDBが再起動するという事象が発生しました。その原因を調査した時の話をRollbackSegmentHistoryListLengthを中心に紹介します。 当時の状況 レプリ…

Kaigi on Rails 2023 参加レポート

こんにちは、サーバーグループの山田です。10/27(金)、28(土)開催のKaigi on Rails 2023に参加しました。その感想などをレポートします。 Kaigi on Railsとは? Kaigi on Railsのコアコンセプトは 「初学者から上級者までが楽しめるWeb系の技術カンファレンス…

FlutterのAdd-to-appを導入しているiOSアプリ保守で起きたライブラリ競合と対処法

プロダクト部クライアントグループの明渡です。 昨年9月から今年4月半ばまで産育休をとり、約1年ぶりの当番ブログです。 産んだ子どもは1歳になりました。食欲魔人という文言がしっくりくる食べっぷりで、成長曲線の上辺すれすれで推移しております。 今回は…

スタディプラスはKaigi on Rails 2023にシルバースポンサーとして協賛します

こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、菅原です。 スタディプラスは、2023年10月27日・28日にハイブリッド(オンライン・オフライン)開催されるKaigi on Rails 2023にシルバースポンサーとして協賛します。 kaigionrails.org Kaig…

SRE NEXT 2023 参加レポート

SRE

SREグループの菅原です。 9/29(金)に九段会館テラスにて開催されたSRE NEXT 2023に参加しました。 ちょっと遅くなってしまいましたが、カンファレンスやセッションの感想についてレポートします。 SRE NEXT 2023とは 信頼性に関するプラクティスに深い関心を…