サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Nintendo Direct
tech.studyplus.co.jp
こんにちは、スタディプラスのカンファレンス/OSSサポートチーム、菅原です。 RubyKaigi 2024がいよいよ来週開催に迫ってきました! 今年もスタディプラスはRubyKaigi 2024にゴールドスポンサーとして協賛しています。 rubykaigi.org 今年は沖縄県那覇市で開催ということで、現地の食事や景色など行くだけで楽しめそうですね。 弊社からも4名のエンジニアが現地参加予定です。見かけたらお声がけいただけると嬉しいです。 RubyKaigi 2024とは? RubyKaigiは、Rubyプログラミング言語に関する国際会議です。 最新の技術について議論する場であり、Rubyの将来について議論する世界最大のRubyコア開発者の集まりです。 それだけでなく日本語と英語でのコミュニティハブとして重要な役割を果たしています。 講演者には、Rubyの生みの親であるまつもとゆきひろ(M
こんにちは。サーバーサイドエンジニアの山田です。 Rubyに型システムが入ってからしらばく経ちましたが、弊社のRailsプロジェクトの一部でもRBSを導入しました。 そのことについて昨年行われたKaigi on Rails 2022にて「RBSとSteepで始める型のあるRails開発とその運用」というタイトルで発表しました。 この記事では発表の内容についてあらためて整理した内容やその後の状況について紹介します。 記事の目的 RBSを導入した背景 対象となるRailsアプリケーション どうやって進めたか RBSの分類 ディレクトリ構成 自作クラス・モジュールなどのRBS GemのRBS(RBS Collectionにあり) GemのRBS(RBS Collectionになし) 当初の運用ルール 変更後の運用ルール RBS Railsから生成されるRBS 標準ライブラリのRBS CIの導入
こんにちは。 モバイルクライアントグループの若宮(id:D_R_1009)です。 最近、スプラトゥーン3のバイトにハマっています。 全ステージでんせつ200を達成できたので、400を目指して日々クマサン商会に入り浸っております。 さて、スタディプラスではFlutter Webを採用しています。 FlutterによるMobile向けとWeb向けの開発では、画面遷移の考え方を変える必要があります。 今回は、開発チームで採用しているgo_routerの使い方を紹介しつつ、Flutter Webにおける宣言的Navigationを紹介します。 pub.dev go_router 宣言的Navigation context.push と context.go A: 手続き的Navigation B: 宣言的Navigation URLによる遷移 おわりに Mobileでgo_routerを使うかどう
はじめに こんにちは!開発部の大石です。 4月から新しい体制になり全社のソフトウェアエンジニア(以下、エンジニアと略します)がソフトウェア事業本部の開発部所属になりました。 今回は弊社のエンジニアが配信しているPodcast「Studyplus Engineering Podcast」についてご紹介します。 「Studyplus Engineering Podcast」とは 弊社のエンジニアの配信チームが昨年から配信しているPodcastです。 ホストがゲストを招いて所属するチームの業務や自社サービスに関する技術の紹介をしており、これまで10回配信しています。 anchor.fm 配信の目的 Podcastは当初、1人のエンジニアが始めた取り組みでした。 それとは別に会社のエンジニア採用広報活動の一環として、採用候補者向けイベントを開催しようという案がありました。 しかし、コロナ禍の影響も
こんにちは!CREの冨山です。 最近子供が夏休みに入って日中家庭が騒がしくなりました。 さてスタディプラスでは新型コロナウィルスの影響で2020年からエンジニアは基本的にフルリモートで働いており、2022年頭からはリモートワーク手当として月3000円が支給されています。 そこで以前こちらの記事でも取り上げましたが、メンバーの数人にリモートワーク環境の写真とこだわり、リモートワーク手当の使いみちを教えてもらったので共有します。 CRE 冨山 まずは言い出しっぺの私のデスクから紹介します! 本人からのコメント こだわり 自動昇降デスク(FLEXISPOT) 購入して3年近く経ちますがめっきり立ち上がらなくなりました ウルトラワイドモニター エディタとブラウザを並べて表示しても十分な幅が確保されるので作業が捗る 今の在宅環境の悩み サブディスプレイの方を見てweb会議に参加するとよそ見している人
こんにちは。 モバイルクライアントチームの若宮(id:D_R_1009)です。 スプラトゥーン3がそろそろですね。アップをしっかりしていきましょう。 さて、モバイルクライアントチームではFlutterをAndroidやiOS、Web向けのフレームワークとして採用しています。 スタディプラス全体で見ると、2019年の2月からFlutterを採用しているので、すでに3年半ほど利用している状況です。 今回は、スタディプラスで採用している設計方針や目指している開発スタイルについて紹介します。 開発に利用する技術について Architecture Navigation Localization 開発への取り組み方について 小さな開発 ライブラリを組み合わせる 独立して再利用可能である アプリケーションごとの設定の反映 UIパーツの共通化とコピーコード 考えることを最小にする これから目指していくとこ
こんにちは、Studyplus事業部モバイルクライアントグループの上原です。 中途入社でiOSエンジニアとして入社して、StudyplusのiOSアプリの開発を主にしています。 また、最近はiOS以外にもFlutterを触り新機能を開発したりしています。 趣味の方では、Apex Legendsを数年やっているのですが、最近愛用していた武器が弱体化&武器生成必須になりモチベーションがどんどん低くなっています。新しい複数人でやれて人口の多いゲームの発売を切実に期待しています。 さて、今回は、Swift 5.5から導入されたasync/awaitをStudyplusのiOSアプリに一部導入したことについて書きます。 docs.swift.org async/await導入以前の非同期コード iOSでは、ネットワーク処理などの時間がかかる処理で、非同期的に動作させるためにクロージャーを呼び出す必要
こんにちは、サーバーグループの市川です。モバイルクライアントグループに所属していましたが、バックエンドの開発を担当することが多くなったので、サーバーグループ異動にしました。 最近、Studyplusブックというサービスをリリースしました。Studyplusアプリ内で、200冊以上の参考書が読み放題で使えるサービスです。 このサービスの開発にあたって、社内向けの管理画面を新規に構築したのですが、Rails 7から標準でインストールされるHotwireを利用することにしました。 今回はHotwireを実際に利用する上で、どういったUIを作ればいいか試作しましたので、その話を書きます。 作った画面 書いたソースコード 使った技術 解説 Turboを理解する Turbo Frameでフレーム分割する 追加フォーム (Turbo Frame) 追加処理 (Turbo Stream) 編集フォームと更
こんにちは、スタディプラスの島田です。好きな漫画は「葬送のフリーレン」です。 はじめに スタディプラスでは、Railsで開発しているプロダクトが2つあります。 Studyplus Studyplus for School それぞれのプロダクトはサービスの性質や歴史が異なり、別なチームが担当しているので同じRailsでも利用しているGemに特色があります。 Railsで開発していると、他のチームがどんなGemを利用して開発をしているのか気になることありませんか? ということで、今回は、Studyplus for School(以下FS) で利用しているGemの紹介をします。 利用している全てのGemを紹介すると大変なので、紹介する内容については私の独断と偏見で、 FSチームの開発をなんとなく想像できる FSの開発でよく利用している あまり有名ではないかもしれないがとても便利 といった観点でピ
こんにちは、ForShcool事業部の島田です。好きな漫画は「ドラフトキング」です。 スタディプラスではこの度、会社として RSpec に寄付をしました。 rspec.info なぜOSSへ寄付するのか 2020年12月からGitHub Sponsorsで、企業がOSSのスポンサーをすることが可能になりました。 GitHub Sponsorsで、企業がオープンソースプロジェクトや開発者をスポンサーすることができるようになりました。これによって皆さんの企業で利用しているオープンソースプロジェクトを支援しましょう!#GitHubUniverse https://t.co/jQI3fdT5tc— GitHub Japan (@GitHubJapan) 2020年12月9日 この発表の後、日本でも多くの企業がOSSの寄付をしたという記事を目にしました。 時雨堂として GitHub Sponser
こんにちは。モバイルクライアントグループの若宮(id:D_R_1009)です。 最近スタンディングデスクを導入しました。業務時間中はずーっとスタンディング状態で、疲れたら業務終了な感じでやってます。 スタディプラスでは一部のプロダクトでFlutterを採用しています。 社内では私がFlutterの開発経験が一番多く、また長くなっているので技術選択などを行っています。 先日、新たにFlutterのアーキテクチャを選びなおす機会がありました。 アーキテクチャを比較するにあたり、社内向けに書いたブログを一部編集して公開します。 はじめに StatelessWidget StatefulWidget StatefulWidgetにmixinするObserver Viewを更新するController Provider (InheritedWidget) InheritedWidgetとは Prov
はじめまして、モバイルクライアントグループの市川です。昨年9月からポルトの開発にジョインしました! porto-book.jp ポルトはFlutterとFirebaseで開発しているサービスです。 サーバサイドの処理は全てFirebase Functionsで実装されており、エンドポイントの数は40近くあります。 その中には、課金に関するクリティカルなAPIや外部サービスと連携するAPIなど、問題が起きるとサービスの継続に大きな影響を与えるものも多くあります。 今回はサービスを安定運用するため、Firebase Functionsのロギング改善した話を3つ書こうと思います。 ロガーの変更 と エラーレポーティング ①重大度レベルの反映 ②ロガーの引数が柔軟 参考情報 ログの保持期間の変更 不要ログの排除 除外の設定方法 まとめ ロガーの変更 と エラーレポーティング ポルトのFunctio
こんにちは @okupara です。 去年から Studyplus for School の API 周りの state 管理を Redux から React Query にし始めました。キャッシュや無限スクロールでのリクエストのサポート、ページネーションのサポートなど、隈雑になりがちな処理を抽象化してくれてるので、かなり使いやすいです。 最近個人的に React Query を使った optimistic-update な UI の実装方法をどうすれば良いのか試行錯誤していたので、現時点での実装案を共有できればと思います。 optimistic-update (optimistic-ui) "楽観的な更新・UI"とはなんぞやについてはカミナシさんの開発者ブログでわかりやすく解説されてます。 Reduxによるいいねボタンの実装例もありますので是非ともそちらををご参考ください。 今回自分が試
こんにちは、Studyplus for School事業部エンジニアの島田です。 もうすぐ2020年も終わりになりますね。 はじめに なぜ導入したか ツール選定 LambdaTestでE2Eテスト(自動テスト) 構成とテストの実行タイミング E2Eテストコード(RSpec)の実装例 リポジトリ構成 Gemfile spec/spec_helper.rb spec/login_spec.rb .circleci/config.yml JenkinsからCircleCIのジョブを実行する際のAPI呼び出し例 LambdaTestのダッシュボード さいごに はじめに 皆さんはスモークテストをしていますか? スモークテストとは元々「電子機器での発煙がないかをテストしていたこと」を起源とし、そこから転じて「ソースコードの開発・追加・修正を終えたソフトウェアが動作する状態にあるかを確認するテストのこと
こんにちは、Studyplus for School事業部エンジニアの島田です。 今回は先日リリースしたStudyplus for School(以下FS) のZoomとの連携機能と、そのリリースに至るまでのプロセスを紹介させていただきます。 prtimes.jp 導入の背景 Zoom OAuth Appについて OAuthアプリの作成 Rubyでの実装について 利用するAPIについて 実装サンプル アプリの申請について アプリ申請の却下について 機能・ユーザビリティテスト セキュリティテスト 最後に 導入の背景 FSを利用している塾・予備校の多くでコロナ禍によりオンライン指導が急速に進んでいます。その中でZoomを導入しているケースが多くありました。オンライン指導をするにあたってミーティング予定を作成するためにZoomを起動する手間を省き、FSからZoomのミーティングの予定をシームレス
次のページ
このページを最初にブックマークしてみませんか?
『Studyplus Engineering Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く