Studyplus Engineering Blog

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

やりたいことベースでWebpackにCSS周りの設定をする

こんにちは、ForSchool事業部の石上です。 あるSPAを作る際、CSSを書きやすくするためにいくつかWebpackの設定を書きました。 今回は、これらの設定がなぜ今こうなっているのかを社内のメンバーに説明するつもりで、どれが何のために必要な設定なのかを書い…

スタディプラス発OSSライブラリ Jasperについて

こんにちは、Androidチームの若宮(id:D_R_1009)です。 先日、JasperというOSSライブラリをリリースしました! github.com 今回は開発目的やモチベーション、今後の方針などを記したいと思います。 Jasperとは Jasperを作成した理由について 多くの人の目を通…

Flutterもくもく自習室をはじめました

スタディプラスでiOSと新規事業を兼務している須藤(id:kurotyann)です。 今回のブログでは、3月9日(土)に開催した「Flutterもくもく自習室 in スタディプラス」の結果についてまとめます。 Flutterもくもく自習室とは? connpass.com 弊社の新規事業では、…

GCP Cloud Firestore をRailsから使う

スタディプラスでサーバーサイドを担当している花井です。 先日田口さんが投稿したこちらのプロジェクトで、実験的にCloud Firestore / Cloud StorageとRailsでAPIを構築したので、その顛末を紹介します。 Firestoreの理由 今回のプロジェクトの要件に、一度…

DroidKaigi 2019参加報告

こんにちは。 Studyplus Androidチームの中島、若宮(id:D_R_1009)です。 2月上旬のこととなりますが、我々AndroidチームもDroidKaigiに参加してきました! 本日は、今年のDroidKaigi参加の経緯から、それぞれが注目しているセッションについてまとめておきた…

第11回 Rails Girls Tokyoに参加して

こんにちはスタディプラスのCTO 島田です。 スタディプラスは2月22・23日に開催された第11回 Rails Girls Tokyoへスポンサーと、コーチとして島田・冨山の2名が参加しました。 Railsgirlsとは RailsgirlsとはWebプログラミングに興味・関心はあるがプログラ…

AWS Lambda上でnode-canvasを使ってグラフを描画する

ForSchool事業部でStudyplus for Schoolのサーバーサイドを担当している松田です。 Studyplus for Schoolでは、一部でChart.jsを利用したグラフの表示をしています。 Chart.jsはHTMLのCanvasでグラフを描画するライブラリです。 今回はこのグラフをサーバー…

Apollo-iOSを使用してGraphQLを叩く

iOS

こんにちは。 iOSエンジニアの弘田です。 みなさんGraphQLはご存知ですか? 知らない方は弊社のエンジニアがGraphQLの記事を書いているのでぜひ読んでみてください。 GraphQLを導入しようとしている話 Studyplusのアプリで一部GraphQLを使用する際にApolloを…

MySQLの0000-00-00 00:00:00という負債とridgepoleの限界

こんにちは、CTOの島田です。 今回は、StudyplusのDBのmigrationで発生した問題とその解決ステップを説明したいと思います。 前提 schema.rbでの運用 ridgepoleの導入 "0000-00-00 00:00:00" 問題 問題の原因は? 暫定対応 問題の解消 あるべき姿 まとめ 前…

新規プロジェクトにVueとVuexを採用してみた

こんにちは。Studyplus開発部の田口です。 新規で立ち上がった開発プロジェクトにVueとVuexを採用してみたので、今回はその所感を書こうと思います。 Vue/Vuexの採用理由 今回のプロジェクトで開発するのは、Studyplusのアプリ内ブラウザのWebViewページです…

インフラエンジニアがオフィス移転で考えたこと[後編]

インフラエンジニアの菅原です。 弊社のオフィス移転が完了しました。 前編で引越しの計画を立てたものの、事は上手く運ばず、色々学びがありました。 今回はインフラエンジニアがオフィス移転で考えたこと[前編]の続きとして振り返りと学びを共有したいと思…

Railsで流量の多いデータをページネーションする

はじめまして、for School事業部のサーバーサイドエンジニアの冨山です。 今回はfor SchoolのリニューアルにおいてAPIでリアルタイムなデータをページネーションする上でJinraiというカーソルベースのページネーションライブラリを開発しました。 今回はその…

Ruby biz Grand prix2018、大賞を受賞しました

こんにちは、CTO島田です。 2018年12月13日、Ruby biz Grand prix2018の表彰式が開催され、スタディプラスが大賞を受賞いたしました! まさか大賞を頂けるとは思っていませんでしたので、とても嬉しいです。 今回、Ruby biz Grand prix応募にあたり、当社の…

透明Activityの罠

初めまして、Studyplus開発部でAndroidアプリの開発をしております中島です。 今回のブログでは、我々 Studyplus Androidチームが踏んでしまった、深い深い落とし穴について少しお話しさせていただければと思います。 透明Activityとは? 透明Activity の罠…

AAC Pagingライブラリ導入の話

お久しぶりです。Androidエンジニアの若宮(id:D_R_1009)です。 今日はAndroid Architecture Components Pagingライブラリ(AAC Paging)の導入例を紹介したいと思います。 アプリを利用してくださっている方はお気づきになられていると思いますが、11月19日よ…

Kubernetesハンズオンを行いました

はじめまして、Studyplus開発部でサーバーサイドを担当している栗山です。 背景 Studyplusではコンテナ化を進めたいと思っていますが、まだAWS Elastic BeanstalkやEC2上でアプリケーションが動いています。 今後コンテナ化するにあたり、 コンテナ化を進め…

インフラエンジニアがオフィス移転で考えたこと[前編]

初めまして、インフラエンジニアの菅原です。 弊社では事業拡大に伴うオフィス移転を予定しております。 インフラエンジニアとして社内ネットワーク移設について検討したことを移転前と移転後の2回に分けてまとめたいと思います。 まだ何も物が入っていない…

RubyWorld Conference 2018に行ってきた

こんにちはスタディプラスCTOの島田です。 はじめに スタディプラスは、RubyWorld Conference 2018 にPlatinumスポンサーとして協賛をさせて頂きました。 それに伴って、ブースも出展いたしました。 2018.rubyworld-conf.org 島根到着からブース出展までの内…

Kotlin Coroutinesを(SDKに)導入しました!

初めまして。Studyplus開発部の若宮(id:D_R_1009) です。9月よりAndroidアプリの開発を行っています。 Kotlin、いいですよね。Kotlin Coroutines、シビれますよね。 ということで、Kotlin1.3がリリースされたことを記念してStudyplus-Android-SDKにKotlin Co…

Sidekiq Enterpriseを使う

お久しぶりです。サーバーサイドエンジニアの花井です。 みなさんは非同期処理に何をお使いですか? ActiveJobでしょうか? Resqueでしょうか? Sidekiqでしょうか? 弊社では歴史的経緯から、上記全てのgemをプロダクトで使っていますが、 この度Sidekiq En…

Google Cloud Functions を利用して社内コミュニケーションを円滑にしていく

はじめに 課題 理想状態 アプローチ案 理想状態を実現する方法を幅広く考える。 定期的に不要なチャンネルを精査する Web APIを利用したアプローチ 今回やること 実現方法 手順 GCPの事前準備 SalckのTokenを生成 実装 プログラムの構成 もろもろ準備 デプロ…

elm-upgradeに従ってElmのバージョンを0.18から0.19へ上げる

elm

ForSchool事業部の石上です。ウェブのフロントエンドを中心にStudyplus for Schoolの開発に携わっています。 あるアプリケーションのElmのバージョンを0.18から0.19に上げる対応をしました。今回はこのことについて書きます。 背景 Studyplus for School で…

UIPickerViewをUIControlを使用してキーボードの様に表示する

iOS

こんにちは。 入社して一ヶ月が経過したiOSエンジニアの弘田です。 今回はUIPickerViewをキーボードの様に表示する方法を解説します。 なぜそんなことをするの? 昔のiPhoneでしたら画面の中心などにUIPickerViewを表示しても画面サイズが小さかったので片手…

Visual Studio Codeの拡張「GitHub Pull Requests」を使ってみた

こんにちは。7月に入社したStudyplus開発部の田口です。 先日Microsoft社が発表したVisual Studio Codeの拡張のGitHub Pull Requestsを試してみたのでその記事を書きます。 まずは弊社のエンジニア陣が普段なんのエディタを使っているのか、アプリチーム以外…

buildersconに行ってきた

スタディプラスCTOの島田です。 今回は9/6~8に開催されたbuilderscon tokyo 2018へ行ってきた感想を書きます。 最初に buildersconとは buildersconは、「知らなかった、を聞く」をテーマとした技術を愛する全てのギーク達のお祭りです という趣旨のもと、イ…

iOSDC2018に参加しました

こんにちは。スタディプラスに9月からiOSエンジニアとして入社した弘田です。 Kotlin festの記事でも紹介しましたが、 弊社には 勉強会・カンファレンス参加補助があるので、iOSDC2018に参加させていただきました。ありがとうございます。 弊社のiOSエンジニ…

GraphQLを導入しようとしている話

こんにちは。Studyplusでサーバーサイドを担当している金澤です。 弊社ではいまapiの一部にGraphQLを導入するべく取り組んでいます。 GraphQLってなんだという話や導入手順などはweb上にすでに沢山あると思います。 なのでそのへんはあっさりめで、検証にあ…

Kotlin festに行ってきました

弊社には 勉強会・カンファレンス参加補助 があります。 その制度を使って会社のお金でKotlin Festに参加させていただきました。補助といいつつ基本全額サポートしてくれました。 ありがとうございます。 Kotlin Festとは 「Kotlinを愛でる」をビジョンに、K…

FirebaseでSlack Slash Commandsを楽に運用する

ForSchool事業部開発グループの松田です。 弊社ではSlackを導入しており、いわゆるChatOpsに活用しています。 Slackにはさまざまな便利機能がついていますが、その中の一つにSlash Commandsというものがあります。 今回はこのSlash Commandsを自作して、その…

スタディプラス のAndroid事情

スタディプラス のAndroid事情 今回はAndroidアプリ担当エンジニアのNabesukeです。 組み込みエンジニア→Android→放浪→iOS→バックエンド→フロントエンド→Androidというよくわからない経歴を持っています。 今回はStudyplus Android版の裏側をご紹介します。T…