React Navigationの概要 React NavigationはNavigationContainerという単位で独立して定義することができます。NavigationContainerの中にNavigationContainerをネストさせることはできません。このNavigationContainerの中に複数のNavigatorを記述することができます。 Navigatorの種類 React Navigationには大まかに三種類のNavigatorがあります。 Tab Navigator Stack Navigator Drawer Navigator それぞれの種類のNavigatorを用途に応じて組み合わせて利用します。 Tab Navigator Tab Navigatorは名前の通り、Tab…
続きを読む →
Nest.js DIPをベースに宣言的コード記述によってバックエンドのサーバを作れるフレームワークです。サーバサイドでもAngularの仕組みを踏襲してモジュールシステムを構築できる仕組みになっています。 このフレームワークはagnosticismな設計によって非常に多岐に渡る拡張ができるため、多くのサードパーティツールによる拡張ライブラリが存在し、かつTypescriptで記述されることを前提としているため、Node.jsでTypescriptでサーバサイドを記述したい、かつ、拡張性を重視したい場合には選択肢としてよいでしょう。 特にTypescriptのスキーマからGraphQLのスキーマを自動生成できるコードファーストアプローチのサポートが強力です。もちろんGraphQLのSDLを元にresolver…
続きを読む →
Mochiの新規プロジェクトでは、再利用可能なライブラリの依存関係を解決しやすいようにモノレポを採用しています。 基本的なmonorepoの設定 lernaとyarnを共存する形で設定を行なっています。 以上はyarn workspacesを有効にする設定になります。の指定は、それぞれのpackagesのversionを独立して管理するようにする設定です。 また、package.jsonにというfield項目を追加します。 ここで設定されているpackagesがそれぞれ依存関係のあるパッケージとして管理され、相互に設定したscope内のパッケージ名でパッケージを参照することができるようになります。 例えば、このパッケージのスコープ名を@mochicorpとした場合、それぞれのpackageのpackage.jsonのname fieldには@mochicorp/というprefix…
続きを読む →
組織を管理する MOCHI.incでは組織アカウントの管理も全てterraformとcloud identityを経由して管理しています。 MOCHI.incでやりたかったことは folder単位で組織のグループ作ってグループに最低権限を与える folder内にadmin用のprojectでservice accountを作ってfolderに対して課金とプロジェクト作成の権限を与える leaderとmemberのグループを作って開発環境ごとに編集権限を与える、leaderには課金とプロジェクト作成の権限を与える CI用にはservice accountでterraformを動かす、個人マシンでは個人のアカウントでterraformを動かす ということでした。 実際に以上のことを実現するために書かれたterraformのコードになります。 Cloud IdentityのアカウントはG…
続きを読む →
このブログサイトはnetlify-templates/gatsby-starter-netlify-cmsを元に作成しています。 今回はこのテックブログをどのような技術セットで作成したかご紹介します。 netlify cmsの仕組み netlify cmsはnetlify上のホスティングサイトをnetlifyのマネージドサービスと連携させる機能を持っていて、yamlファイルおよび、cmsのjsライブラリを読ませることによって、netlify上にcmsを構築することができます。 config.ymlの記述にCMS上で入力したいテキストデータやファイルのidを設定すると、その入力フォームをページ上に自動生成し、config.ymlに指定したbackend上でmarkdownファイルの作成を行ってくれます。 config.yamlの例 生成されたフォームの例 以上はtitle…
続きを読む →