エンジニアが企画開発をやってみた

こんにちは。 N予備校の開発チームではこの4月に企画開発チームが発足しました。 この記事では、N予備校での企画開発の紹介と、でN予備校の企画開発エンジニアって何してるの? という1つの例として、私自身がN予備校の企画に関わってきた中での気づきなどを…

ReadableなOpenAPI定義ファイルを書く

OpenAPIの定義ファイルがyamlのままで読みやすくなるように、ファイル分割方法などを工夫した話です。

角川ドワンゴ学園・次世代教務システムについて

本稿では、Javaと独自フレームワークで構築された現行の教務システムをTypeScriptとNext.jsで構築された次世代教務システムへと移行していく過程で取り組んでいることを紹介していきます。 はじめに こんにちは。N 高等学校 / S 高等学校の教務システム開発…

全てを書き換え続ける。N予備校Webフロントエンド実装6年のあゆみ

オンライン学習サービス『N 予備校』は、2022年 4 月でリリース 6 周年を迎えました。N 予備校の Web フロントエンドはリリース以来、全面的な書き換えを続けています。 実装の変遷を説明し、書き換えの経験やWebフロントエンドという領域の性質を踏まえて、…

TypeScript Compiler API を使って ts-expect-error を一括挿入する

TypeScriptのCompiler APIを使用し、コンパイラから得られるエラー情報を利用して `@ts-expect-error` を挿入するスクリプトを作成したという記事です

Appleのアカウント削除に関する審査ガイドライン更新への対応

はじめに こんにちは。 10月に発表された Appleのアカウント削除に関する審査ガイドライン更新のニュースから3ヶ月経ちました。 皆さんいかがお過ごしでしょうか。 私たち N予備校もこのニュース以来、文字通りの忙しい師走となりました。 それまでは非公開…

リニューアルしたN高等学校・S高等学校プロジェクト採用サイトのご紹介

昨年末より、N高等学校・S高等学校プロジェクト採用サイトをリニューアルしました。 www.nnn.ed.nico 初公開のものもありますので、コンテンツについて少しばかり紹介させていただきます。 インタビュー 昨年取り組んだ2つの大きなプロジェクトであるN予備校…

技術ブログを(だいたい)1年続けた背景と成果

このドワンゴ教育サービス開発者ブログを開設してから2年が経ちました。 特に2021年3月からおよそ1年の間、技術ブログの運用体制を整え、定期的に記事を投稿してきました。 この記事では、技術ブログ運用の背景と現在の運用体制、成果と課題についてまとめま…

N予備校のホーム改善の話

はじめに N予備校のデザイナーをしている、本下です。 8月にPC版、10月にAndroidアプリ版、11月にiOSアプリ版と段階的にリリースされた「ホーム改善」プロジェクトについてご紹介します。 このプロジェクトで私は、要件定義段階から参加し、主にデザイナーと…

Jetpack Compose を少しずつアプリに導入する方法と得られた知見について

この記事は、ドワンゴ Advent Calendar 2021 の15日目の記事です。 N予備校 Android チームでは、アプリの各画面を少しずつ Jetpack Compose で書き換えています。 developer.android.com この記事では、チームで Compose を学習した過程や、段階的な Compos…

Web フロントエンドのレガシーコードを置き換えるためのテストの考え方

この記事は、ドワンゴもスポンサードしていた JSConf JP 2021 にて、「Web フロントエンドのリプレースを支えるテストの考え方」というタイトルで berlysia がトークした内容をもとに再構成したものです。トークのアーカイブもご覧いただけます。 この記事は…

カジュアル面談と「ドワンゴ EdTech Talk」(事業説明会)のご紹介

私達ドワンゴの教育事業ではカジュアル面談しています。 よりお気軽にカジュアル面談に申し込みいただくため、どんな人がどんなことを話すのかこの記事でまとめてお伝えします。 カジュアル面談よりさらにカジュアルに話を聞いていただける場として、ドワン…

リグレッションテストを導入した話

こんにちは。N予備校の品質保証グループです。 品質保証グループでは、日々案件ごとの業務に関わっています。今後はより横断的な関わりを強化していき、開発チームと密な連携を進めようとしています。 そこで、今回はリグレッションテストについてお話しよう…

AndroidアプリをSingle Activityに移行するためにやったこと

N予備校 Android チームでは、tatsuyafujisaki さん、hiesiea さん、yoshiya12x さんにご協力いただき、画面構成のほとんどを Single Activity に移行しました。 この記事では、Single Activity に移行した背景とつまづいたポイント、Single Activity にした…

N予備校ってどんなサービス?

N予備校ってどんなサービス? 私達ドワンゴ教育事業本部ではN予備校を開発しています。 この記事では、N予備校がどんな機能やコンテンツを提供しているのか、ひととおり説明します。 N予備校サービス全体像 N予備校は月額1100円(税込)で様々なコンテンツを…

iOSチームではリファレンスリポジトリを運用しています

こんにちは。N予備校iOSアプリ開発チームです。今日はリファレンスリポジトリをご紹介します。 皆さんはチームの新メンバーをどうやって開発にアサインしてもらっていますか?この悩み、一度は悩まれたことがあるのではないでしょうか。そこで我がチームで登…

N予備校のマイクロサービス

N予備校のバックエンドは、2016年のリリース当初からマイクロサービスアーキテクチャを採用しています。 この記事では、N予備校のマイクロサービスアーキテクチャについて、主にアプリケーション側の観点からご紹介していきます! 目次 目次 N予備校の全体構…

品証チーム立ち上げ中です

現在、ドワンゴ教育事業では品質保証チーム(以下品証チーム)を立ち上げている最中です。 それに伴い、品質保証エンジニアの採用 もオープンしています。 この記事では募集の背景と目指しているところをお伝えします。 また、立ち上げの最初期、2021年1月か…

ドワンゴ教育事業 エンジニア採用中です!

ドワンゴの教育事業ではエンジニアを採用中です! 私達は「未来の当たり前の教育をつくる」ため、N予備校やN高等学校・S高等学校を支える教育システムの開発に日々取り組んでいます。 この記事を通じて、教育事業に興味をもっていただいたり話をきいてみたり…

Android App BundleのビルドをBitriseで自動化する

N予備校 Androidチームでは、アプリの配信形式を従来のAPKからAAB(Android App Bundle)に変更しました。 Google Play Storeで新しく配信する全てのAndroidアプリは、2021年8月からは配信形式をAABにしなければなりません。既存のアプリではAABへの対応は必…

N 予備校に Visual Regression Testing を導入した話 + tips

N 予備校の Web フロントエンド開発に、 Storycap + reg-suit による Visual Regression Testing を導入しました。設定の工夫から、設定中や運用してしばらくの間に実際に発生したハマりどころを挙げ、簡単に注意点や対処例を紹介します。

Androidアプリの非同期処理ライブラリをRxJava3にバージョンアップしました

N予備校Androidアプリでは、tatsuyafujisakiさん、naka2ttsuさんにご協力いただき、非同期処理を行うライブラリをRxJava3にバージョンアップしました。 これまではRxJava2を使用していましたが、RxJava2のサポートが2021年2月末で終了してしまうため、それに…

TypeScript Compiler APIを使って型を中心に実装を自動生成する

この記事は、ドワンゴアドベントカレンダー2020の10日目の記事です。 qiita.com はじめに ベルリシア(@berlysia) という名前で活動しています。Webが好きです。ドワンゴでは、N予備校をはじめとする教育事業のWebフロントエンド開発をしています。 この記事…

AndroidアプリのKotlin化をやり切るための腕力

この記事は、ドワンゴ Advent Calendar 2020の4日目の記事です。 N予備校Androidチームでは、およそ2年かけて、Javaで書かれたコードのほとんどをKotlinに書き換えました。この記事では、コードをKotlinに書き換える上で必要だったことをまとめていきます。 …

AndroidチームのPullRequestを小さくする開発方針について

この記事では、N予備校Androidチームが行っている開発方針についてまとめます。 Androidチームに興味を持ってくれた方や、新しく配属していただく方の参考になればと思います。 N予備校Androidチームの開発方針 N予備校Androidチームでは、開発方針として「…

Androidで使用するMockライブラリをmockito-kotlinに移行しました

N予備校Androidチームでは、Unit Testに使用しているMockライブラリをMockitoからmockito-kotlinに移行しました。 この記事では、ライブラリを移行した経緯、mockito-kotlinを選定した理由と移行して得られたメリットについて書きます。 Mockライブラリを移…

社内Ruby会の紹介:Rubyの Kernel#` の気持ちを悪用して面白DSLをつくる

この記事は 『ドワンゴ Advent Calendar 2019』 の 25日目 の記事です。 はじめに Kernel#` について お題:HTMLを組み立てるDSL 実際に動く ` を使ったHTMLのDSLの例 まとめ おまけ はじめに こんにちは、 Ruたん( @ru_shalm )だよ! ドワンゴでは、毎週…

エンジニアチームのナレッジ共有と改善

ドワンゴアドベントカレンダー2019の24日目です qiita.com こんにちは、@tsuwatch です。主にRubyを書きます。今はN予備校、ニコニコQをやっていて、昔はニコナレもやってました クリスマスイブですね。年末にニコ生に耽るのが楽しみです 早速ですが今回は、…

Kubernetes ラベルセレクターを client-go から使う

この記事は 第二のドワンゴ Advent Calendar 2019 の20日目の記事です。 qiita.com 投稿が遅くなりました。 「Kubernetesのカスタムコントローラーを作ってみた」的な記事を書きたかったのですが、作ってる際にハマったclient-goでのラベルセレクターの扱い…

Rails 5.1 で DatabaseRewinder + Activerecord-Import + PostgreSQL が上手くいかない問題が期せずして(?)解決した

この記事は 第二のドワンゴ Advent Calendar 2019 の19日目の記事です。 qiita.com 誰 naari3です。 ドワンゴで N予備校 のバックエンド開発をやっています。 概要 Rails 5.0 から Rails 5.1 にアップデートする対応の最中に遭遇した現象を紹介します。 依存…