Studyplus Engineering Blog

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

ReactRouter で描画するコンポーネントを分けてみました

こんにちは。ウェブアプリケーショングループのエンジニアの川井です。 今回はReactアプリケーションの再描画を抑えるために、画面をいくつかのパーツに分け、各パーツごとにルーティングを管理するようにした話を紹介します。 背景 Studyplus for Schoolで…

初めてのQAエンジニア導入

1人目QAエンジニアとして最初に行ったこと こんにちは。QAエンジニアの和田谷です。最近のご褒美は月2回のサウナで、溜まりに溜まったものを汗と一緒に流すことに全力を尽くしてます。 1人目QAエンジニアとして最初に行ったこと QAエンジニア導入の背景 ▼サ…

Amazon RDSのPerformance Insightsを利用してアプリケーション側からDBの負荷を改善した話

こんにちは。2022年7月に入社したサーバーサイドエンジニアの青山です。 今回は入社してからやってきたことの1つとして、同じグループの山田と一緒にAmazon RDSのPerformance Insightsを利用してアプリケーション側からDBの負荷を改善した話をします。 ※改善…

FlutterのローカルDB対応

こんにちは、モバイルクライアントグループの隅山です。 Flutter開発がメインになってしばらく経ちますが、今回はローカルDB対応でIsarを導入した話をします。 pub.dev FlutterのローカルDBパッケージはたくさんあって悩みますが、下記の理由でIsarを選びま…

RailsアプリケーションにおけるRBSの運用方法

こんにちは。サーバーサイドエンジニアの山田です。 Rubyに型システムが入ってからしらばく経ちましたが、弊社のRailsプロジェクトの一部でもRBSを導入しました。 そのことについて昨年行われたKaigi on Rails 2022にて「RBSとSteepで始める型のあるRails開…

Amazon EKSクラスタ上で動作するSidekiqをGraceful Shutdownさせる

SidekiqをKubernetes(Amazon EKS)で動作させる際、Graceful ShutdownとRolling Restartをさせるために必要な前提知識を整理します。

チームとしてモブプログラミングを始めてみました

チームとしてモブプログラミングを始めてみました こんにちは。ウェブアプリケーショングループのエンジニアのましばです。 早いものでもう2022年も終わりが近づいてきました。 今回は、チームでモブプログラミングに取り組みはじめた件について記事にします…

スタディプラスはRSpecとFlutterコミュニティ(Rémi Rousseletさん)に寄付しました

こんにちは。 スタディプラスのカンファレンス/OSSサポートチームです。 スタディプラスは2021年度に引き続き、今年度も会社としてOSSに寄付をしました。 opencollective.com github.com 寄付の取り組み 「なぜOSSへの寄付をするのか」については、昨年度の…

入門go_router

こんにちは。 モバイルクライアントグループの若宮(id:D_R_1009)です。 最近、スプラトゥーン3のバイトにハマっています。 全ステージでんせつ200を達成できたので、400を目指して日々クマサン商会に入り浸っております。 さて、スタディプラスではFlutter W…

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

こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、冨山です。 スタディプラスは、2022年11月26日にオンラインで開催されるJSConf JP 2022に協賛します。 jsconf.jp JSConf JP 2022とは? JSConf JPはJapan Node.js Associationが主催するテ…

Kotlinのアレ、Dartでどう書くの? ~ 1人 FlutterKaigi unconference ~

こんにちは、モバイルクライアントグループの中島です。 ついこの間、約300~400年に一度のイベントがありましたね。 皆既月食+惑星食、道ゆく人が皆空を見上げていたのが印象的でした。 自分は残念ながら天体観測用の環境やカメラなどがなかったため、スマホ…

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

こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、冨山です。 スタディプラスは、2022年11月10日~11日にオンラインで開催されるRubyWorld Conference 2022に、シルバースポンサーとして協賛します。 2022.rubyworld-conf.org RubyWorld Con…

GitHub Discussionsで他システムやクライアントサイドの開発者との認識合わせを非同期に行う

こんにちは。開発部エンジニアの石上です。最近は息子とプラレールで遊ぶのが楽しいです。先日、社内のSlackでおすすめされていて気になっていた自動ターンアウトレールなるものを買ってきました。走るごとに進行方向が切り替わって、とても楽しいです。 さ…

DroidKaigi 2022にスポンサー&参加&登壇しました

こんにちは。 久々に朝の電車に乗りました。モバイルクライアントグループ テックリードの若宮(id:D_R_1009)です。 DroidKaigi 2022お疲れ様でした! 10月5日から7日にかけて、フルで楽しむことができました。 まさかお会いできるとは、という方なんかともお…

スタディプラスはFlutterKaigi 2022にブロンズスポンサーとして協賛します

こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、若宮(id:D_R_1009)です。 スタディプラスは、2022年11月16日~18日にオンラインで開催されるFlutterKaigi 2022に、ブロンズスポンサーとして協賛します。 flutterkaigi.jp FlutterKaigi 202…

スタディプラスのポストモーテム文化

SRE

お久しぶりです。SREグループの菅原です。 おすすめのアイスはオハヨー乳業のBRULEEです。夏場は1日にアイスをいくつも食べてしまいました。もう末期ですね。 弊社ではポストモーテムをバックエンド(サーバーサイド+SRE)で運用して3年経ちました。2019年のSR…

iOSDC Japan 2022に参加しました

こんにちは、モバイルクライアントチームの上原です。 2022/9/10~12に開催されたiOSDC Japan 2022へ参加しました。 今回、弊社としてはシルバースポンサーとしてスポンサードしており、メンバーは勉強会・カンファレンス参加補助で参加しました。 iosdc.jp …

スタディプラスはKaigi on Rails 2022にゴールドスポンサーとして協賛します

こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、若宮(id:D_R_1009)です。 スタディプラスは、2022年10月21日・22日にオンラインで開催されるKaigi on Rails 2022にゴールドスポンサーとして協賛します。 kaigionrails.org Kaigi on Rails …

スタディプラスはDroidKaigi 2022にサポータースポンサーとして協賛します

こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、若宮(id:D_R_1009)です。 スタディプラスは、2022年10月5日から7日にかけて東京ドームシティプリズムホールおよびオンラインで開催される、DroidKaigi 2022に協賛します。 droidkaigi.jp Dr…

RubyMineを使い始めました

こんにちは。サーバーチームの森長です! 今年の1月にサーバーサイドエンジニアとして入社しました。 趣味は、スポーツ、旅行、音楽フェス参戦ですが、昨今のコロナ禍の影響もありインドアな趣味を探し続けております。 今回は、3ヶ月ほど前から弊社の一部…

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

こんにちは、スタディプラスのカンファレンス/OSSサポートチーム、若宮(id:D_R_1009)です。 スタディプラスは、2022年9月10日から12日にかけて早稲田大学理工学部西早稲田キャンパス63号館およびオンラインで開催される、iOSDC Japan 2022にシルバースポンサ…

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

こんにちは、スタディプラスのカンファレンス/OSSサポートチーム、若宮(id:D_R_1009)です。 スタディプラスは、2022年9月8日から10日にかけて三重県総合文化センターおよびオンラインで開催されるRubyKaigi 2022にゴールドスポンサーとして参加します。 ruby…

Flutter Webで本棚画面をSliversを用いて実装したお話

こんにちは、モバイルクライアントチームの明渡です。 直近数ヶ月メインの開発がもっぱらFlutterで、久々にiOSで1画面作ってみたら忘却の彼方にあったiOS独特の細かいクセが要因で少し手こずりました。 新しいことに取り組むのは大事だし楽しいですが、身に…

Firefox好きの人間によるタブの実装(HTML/CSS/JS)

お気に入りブラウザFirefox こんにちは@okuparaです。 自分はプライベートでは専らFirefoxを使っています。 昨今の各社サービスでFirefoxの対応停止のアナウンスを見かける度に、ユーザー数から見ても仕方ないことだと思いながらも、少し寂しい気持ちになっ…

ソフトウェアエンジニアによるPodcastの配信

はじめに こんにちは!開発部の大石です。 4月から新しい体制になり全社のソフトウェアエンジニア(以下、エンジニアと略します)がソフトウェア事業本部の開発部所属になりました。 今回は弊社のエンジニアが配信しているPodcast「Studyplus Engineering Podc…

スタディプラスメンバーのリモートワーク作業環境事情 Part2

こんにちは!CREの冨山です。 最近子供が夏休みに入って日中家庭が騒がしくなりました。 さてスタディプラスでは新型コロナウィルスの影響で2020年からエンジニアは基本的にフルリモートで働いており、2022年頭からはリモートワーク手当として月3000円が支給…

Flutterアプリケーションのアーキテクチャ(Studyplusの場合)

こんにちは。 モバイルクライアントチームの若宮(id:D_R_1009)です。 スプラトゥーン3がそろそろですね。アップをしっかりしていきましょう。 さて、モバイルクライアントチームではFlutterをAndroidやiOS、Web向けのフレームワークとして採用しています。 …

コンテナビルドを速くするためのテクニック

こんにちは! SREの栗山です。 最近観て良かった映画は「コーダ あいのうた」です。 今回は弊社で使っているコンテナビルドを速くするためのテクニックを紹介します。 以下のような一般的なテクニックに関しては他でよく紹介されているので今回は割愛します…

seedのベストプラクティス

こんにちは、ForSchoolチームでエンジニアをしている島田です。最近の好きな漫画は「白山と三田さん」です。 今回はStudyplus For School(以下FS)のseed運用について説明します。 FSは以下で構成されたSPAです。 サーバーサイド:Ruby on Rails フロントエン…

Firestoreのカスタムオブジェクト利用時の注意事項

こんにちは、モバイルクライアントグループの隅山です。 今回はCloud Firestore(以下、Firestore)をAndroidアプリに導入した際、難読化問題が発生したのでその対応方法を紹介します。 Firestore自体はとても便利なため、簡単な利用方法も併せて紹介します。 …