Studyplus Engineering Blog

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

Studyplus for Schoolをリニューアルしました

こんにちは、こんばんは、For School事業部のid:atomiyamaです。 先日フルリニューアルされたStudyplus for Schoolのサーバーサイド開発、フロントエンド開発の一部を担当しました。 新しいStudyplus for School 以前のStudyplus for School リニューアルに…

DatabaseView(Room 2.1)による本棚並べ替え機能リリースについて

こんにちは、Androidチームの若宮(id:D_R_1009)です。 スタディプラスのAndorid版にて、5月半ばより不具合の発生していた「本棚」機能を7月頭に修正したしました。 ご不便、ご迷惑をおかけしましたこと大変申し訳なく思っております。 「本棚」の不具合にお…

Navigation で DialogFragment を表示した話

こんにちは、Studyplus Androidチームの中島です。 2019年6月より、Studyplus AndroidアプリはTarget SDK28への対応、合わせてAndroidXへの移行を行いました。 今まで「AndroidXに対応したらここ直しましょう」としていたところをガシガシ直していくのは楽し…

突撃!隣のキーボード Studyplus 2019

こんにちは。今年の5月に入社したiOSエンジニアの大石(id:k_oishi)です。 私は入社時のオリエンテーション終了後、最初にしたことが社内のSlackでキーボードチャンネルの検索という程度にキーボードが好きな者です。 当然ではありますが、以前から他のエンジ…

プロジェクト・タスク管理ツールにmonday.comを使い始めたので、いかにmonday.comが最高かを紹介したい

こんにちは、スタディプラスの栗山(id:shepherdMaster)です。 みなさんは社内でどんなプロジェクト・タスク管理ツールを使ってますでしょうか? 今回はスタディプラスで最近使い始めたプロジェクト・タスク管理ツールのmonday.comを紹介したいと思います。 T…

Flutterもくもく自習室 in スタディプラス #3 を開催しました

こんにちは。 スタディプラスではAndroidの開発を、趣味でflutterの開発をしている若宮(id:D_R_1009)です。 6月22日(土)に開催した「Flutterもくもく自習室 in スタディプラス #3」の結果についてまとめます。 connpass.com Flutterもくもく自習室とは? 第1…

GitHubのPull Panda連携を(さっそく)導入しました!

Androidチームの若宮(id:D_R_1009)です。 今朝方、Twitterを眺めていたら下記のツイートが目にとまりました。 ここ最近、超絶便利に感じていた Pull Reminders が GitHub に買収されて、誰でも自由に使えるようになったみたいだ。GitHub + pull request でチ…

スキーマ駆動開発のススメ

こんにちは,For School事業部のid:atomiyamaです. 現在Studyplus for Schoolはサービスのフルリニューアルを行っています. 弊サービスはこれまでRailsでslimを使いViewを提供してきましたが,今後より良い体験をユーザーへ届けるためにリニューアルを行い…

Android Architecture Componentsに感動した話

初めまして、Studyplus開発部のAndroidエンジニアの隅山です。今年5月からスタディプラスでAndroidアプリ開発を行っています。 本格的にAndroid開発を始めてまだ日が浅いので、初中級エンジニア目線で学んだことをまとめていきたいと思います。 背景 やった…

AndroidのCI環境を移行しました!

こんにちは、Androidチームの若宮(id:D_R_1009)です。 2019年5月よりAndroidチームのCI環境をBitriseからCircleCIに移行いたしました。 今回は移行の経緯や結果などをまとめたいと思います。 CI環境変更経緯 CI移行ステップ スタディプラスAndroidチームのCI…

弊社オフィスで「Flutter Meetup Tokyo #9」を開催しました

こんにちは、スタディプラスの須藤(id:kurotyann)です。 今回のブログでは、5月22日(水)に弊社オフィスで開催した「Flutter Meetup Tokyo #9」についてまとめます。 https://flutter-jp.connpass.com/event/126419/ Flutter Meetup Tokyo とは? Flutter M…

Studyplusのとある画面でYouTubeの動画再生に対応し、やらかしたお話

こんにちは、Studyplus iOSチームの明渡(ID: m_yamada1992)です。 今回は、今年3月にリリースしたStudyplusアプリにて大学の情報を表示する画面でYouTubeの再生に対応したお話、およびiOSアプリ側の実装にて盛大にやらかした話をつづっていきます。 YouTube…

弊社のSSO事情について

こんにちは、サーバーサイドエンジニアの金澤です。 みなさんSSOしてますか? 今日は弊社の管理ツールなどで導入しているSSOについてお話しします。 現状 大きく分けて二通りの方法で実現しています。 awsのalbでopenid connect(以下oidc) google G suiteのs…

RubyKaigi 2019にPlatinumスポンサーとして参加しました!

こんちにちは、スタディプラスCTOの島田です。 スタディプラスはRubyKaigi 2019にPlatinum Sponsorsとして参加させて頂きました。 スタプラのブースはこんな感じですこうしてみるとStudyplusロゴがたくさん一際目立っている気がする……… #Rubykaigi pic.twitt…

便利に使えるAnsibleのAWSモジュール11選

こんにちは、インフラエンジニアの菅原です。 皆さんはAWSをどのように管理されてますか? Ansibleでしょうか?ChefやTerraform、CloudFormationでしょうか? 弊社ではAnsibleのAWSモジュールを使って、構成をコード化し、管理しております。 そのため最近関…

Rails Developers Meetup 2019に参加してきた

こんにちは! For School事業部でサーバーサイドエンジニアをしているatomiyama(id:atomiyama)です. 今回3/22, 3/23に開催されたRails Developers Meetup 2019 Day2参加してきました! 弊社はDay2でビールスポンサーとして参加させて頂いたのですが,こうい…

RubyKaigi2019でお待ちしております!

スタディプラスCTOの島田です。 いよいよ今週RubyKaigi2019が開催されます。 今回、スタディプラスではスポンサーブースを出展させていただきます。 ブーススポンサーはRubyWorld Conference 2018(以下RWC)に続き2回目となります。 ブースでは学習管理サービ…

Flutterもくもく自習室 in スタディプラス #2 を開催しました。

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

try! Swift TOKYO 2019行ってきました

初めまして、iOSチームに昨年10月から入社しております明渡(ID: m_yamada1992)と申します。 入社してからといいますか、社会人8年目にして初めて平日に丸1日単位で開催される技術カンファレンスへ大手を振って参加してきました! 開催が3月21日から23日でし…

やりたいことベースで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エンジニアの弘田です。 みなさん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ページです…

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

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