もふもふ技術部

IT技術系mofmofメディア

RailsアプリケーションとKintoneを連携する

CMS(顧客管理システム)で一番有名なのはセールスフォースですが、国内製品だとサイボウズが提供する Kintone が有名です。 操作性もよく、個人的にはセールスフォースよりずっと使いやすいんじゃないかと思ってます。 今回は、業務で Rails アプリケーショ…

Hololens2 + Unityで自分の部屋にゾンビを召喚する

前回同様にMicrosoft公式のチュートリアルが完了したところからやります 過去にUnity単独でゾンビを扱った時の記事も参照しながら進めます。 Unityで追いかけてくるゾンビを実装する 3Dオレの部屋をVR対応してゾンビさんと対面する MR空間にゾンビを召喚する…

Hololens2で50mより遠くに配置されたオブジェクトが表示されない問題

最近ちょっとHololens2のお仕事をしていたのですが、Hololens2の空間上で50mより先に配置したオブジェクトが表示されないという問題に直面しました。 Hololens2はまだ日本語の技術情報が少ないので、残しておいておくと後々助かる人がいるだろうと思ったので…

Pay.jpで単発決済機能を実装する

Railsで決済機能を実装する際、決済サービスの候補としてあがるのはだいたいStripeかPay.jpだと思う。 業務で定期講読する商品を扱うことになりPay.jpを使って実装を行なったが、Payjpの定期購入について解説した記事が少なかったので解説してみたいと思う。…

Next.jsでログイン機能の実装 NextAuth.js

Next.jsで使える認証ライブラリ、next-authでGoogle認証を試してみます。 公式を参考にしつつ動くところまでやってみます。永続化とかはしません。 ちなみに今回の内容はこのあたりに何もかも書いてあります。 https://next-auth.js.org/getting-started/exa…

Railsでモデル層からバリデーションを切り出して共通のバリデーションルールを定義する ActiveModel::EachValidator編

アプリケーションを開発していると、電話番号やURL、カナなど複数のモデルで同じバリデーションを定義していることがある。 上記の例くらいなら、同じバリデーションルールを複数箇所で書いても良さそうだが、変更が生じた時やもう少し複雑なバリデーション…

Railsでモデル層からバリデーションを切り出して共通のバリデーションルールを定義する ActiveModel::Validator編

前回の記事では1つの属性に関するバリデーションルールを共通化出来るActiveModel::EachValidatorについて解説した。 そこで今回は、Railsのバリデーションを定義するためのもう一つの基底クラスである、ActiveModel::Validatorについて解説したいと思う。 A…

create済みのモデルのIDをUUIDに変更してみた

Railsアプリへのuuidの適用方法 postgresqlのuuid拡張機能を有効化 initializers内でprimary keyのデフォルト値をuuid化 バージョン スキーマ users events event_participants マイグレーション まとめ Railsアプリへのuuidの適用方法 Railsアプリへのuuid…

盛り盛りなReactのフレームワーク Blitz入門

最近ホットなBlitzに入門します! 公式チュートリアル(アンケートサービスみたいなものを作ります)に沿って進めていきますので、困ったら公式見てください() https://blitzjs.com/docs/tutorial ただ、バージョンが違うと自動生成されるコードが違ったりする…

Blitzのgenerateやrecipeを試す

公式チュートリアル中ではあまり深く触れられない「generateやmigrationで何が行われているのか」や、recipeを使ってライブラリを導入してみるといったことを書きます。 Blitz入門記事はこちら 盛り盛りなReactのフレームワーク Blitz入門 | もふもふ技術部…

Unity(C#script)で外部のサーバーとHTTP通信を行う

UnityにおけるHTTP通信 WWW UnityWebRequest HttpWebRequest 通信してみる コルーチン UnityにおけるHTTP通信 内部で完結する簡単なゲームなどであればHTTP通信を行う必要性はあまりないことも多いですが、一定規模のシステムやランキング機能を実装したい場…

HoloLens2&MRTK 環境構築する

動作環境 事前準備 Unity側で環境を整える MRTKを入れる MRTKのインストール Tofuを出す Buildする Visual Studio 前回記事からすぐですが、mofmofにHoloLens2が到着したので早速環境構築していきます。 今回はHololens2のセットアップと、実際に適当なプロ…

Unityのためにさらっと学ぶC#

Unityのためにさらっと学ぶC 変数・定数 演算 リスト 関数 デバッグ方法 Class Unityのためにさらっと学ぶC mofmofはRailsをバックエンドに採用し、高速にMVPを組み立てて事業検証などを行うことを得意としている会社ですが、同時に新しいもの、技術が好きな…

Webグラフィックス描画ライブラリ 「PixiJS」を試す

ブラウザ上で動作する、WebGLの知識が無くてもリッチでインタラクティブな2Dグラフィックスを描画することができるライブラリ「PixiJS v5」を試してみました。

Unity + AR Foundation でiOSのAR世界に豆腐を出現させる

ちょっと仕事で使う予定があったのでUnityでARアプリを作る準備をしてみます。 まずは軽く情報収集してみたところ、Unity上でARを動かすには、VuforiaとAR Foundationの二種類の選択肢がある。 参考 UnityでAR入門(AR Foundation編) AR Foundation 4 × Hol…

Google Analyticsのイベント計測を行う Nuxt + typescript (vue-class-component)

あるものがどれくらいクリックされたかを計測したかったんですが、多少詰まったのでポイントを置いておきます。 技術スタックは - Nuxt: 2.12.2 - TypeScript: 3.8.3 - @nuxtjs/google-analytics: 2.2.3 といった具合です。 詰まったのは、あちこちで紹介さ…

Apolloのキャッシュ更新入門 writeQuery / cache.modify / 自動

GraphQLのクライアントとしてデファクトスタンダードともいえる立ち位置にあるApollo。 キャッシュ機能が非常に便利な一方で、ちゃんと理解していないと沼にハマることもあります(n敗)。 最近はサーバをgraphql-rubyで書いてフロントはReactで書くというのを…

Next.js を使ってみる(TypeScript + firebase + Recoil + vercel) その1

バックエンドはRuby on Railsを主に使っていますがフロントエンドはフレームワークをあまりつかっていないことに気づいたので試してみる 環境構築 TypeScriptを導入する tsconfig.jsonを作成する Firebaseでユーザーをいい感じに認証させる ユーザー認証 Rec…

Expo + React Native + Recoilでグローバルに状態管理してみる

個人開発でExpo + React Nativeでアプリを作っているんですが、認証しているユーザーの情報など、アプリ全体でグローバルに変数を持ちたいという気持ちが高まってきました。 React標準でContext APIというものがあるけども、前回そっちを試したので今回はRec…

Gatsby(GraphQL/React)とWordpressでJAMstackなサイトを構築してみる

Wordpressで作成したサイトをもうちょっとお手軽にメンテできないかと思って調べたところ、Gatsbyでできそうだったので試してみました。 やり方 概要 Wordpress Wordpress プラグイン Gatsby作成 Gatsbyページ追加 Deployする ビルドの連携 Netlify Wordpres…

Vue+c3.jsでグラフ描画してみる

実際の案件でインタラクティブな折れ線グラフ描画機能を実装する必要があったため、いくつかライブラリを調べていました。 描画するグラフでは下記のような機能を実装する方針だったので、拡張性の高いライブラリを探していたところ、c3.jsというライブラリ…

Expo + React NativeのContext APIでユーザー認証情報を引き回すサンプル

複数画面で認証済みのユーザー情報を引き回したいなあと思ってどうやったらいいか調べたところ、画面間をこえてグローバルに値を保持することが出来る、React標準のContext APIというものがあることが分かったので試してみる。 このContext APIそんなに使い…

Expo + React NativeでBare WorkflowにejectしてAppleストアリリース出来る状態にする

Expo + React Nativeで個人アプリ開発をしていてストア公開までようやくいけた。 Ricetta(リチェッタ)というレシピ管理アプリで、WEB上のレシピのURLを登録していくことで、レシピを集約管理出来るっていうコンセプトです。開発期間はたしか1週間くらいなの…

React + Firebase + Hasuraで体験する快適なGraphQL生活

元々graphql-rubyとReactで生きていたんですが、どうやらHasuraなるものが良いらしいと知り、掲題のスタックで社内書籍管理サービスをつくってみました。 楽しかったのでちょっと書いてみます。 具体的には認証つきHasuraからusersを取得できるところまで。 …

Sidekiq実行したらエラーになったので調査して修正したこと

エラー sidkiqで実行した処理 設定確認 ログ確認 推測 対策 参考 エラー Railsでsidekiq使ってるときに以下のエラーが出ました。 could not obtain a database connection within 5.000 seconds これは、使用可能なコネクション数よりも多くの接続を使用しよ…

RailsプロジェクトでSlack通知を実装する

プロジェクトの開発中・リリース直後は想定外のエラーが多発するため、異常はすぐに検知出来た方が開発スピードが上がりますね。 今回はそういったケースでライトにSlackへの通知が出来る、slack-notifierのご紹介です。 gemインストール Gemfileにslack-not…

Pythonでデータ分析をするためにMacにJupyter Notebookの環境構築をする

mofmofではRailsを使った受託開発の他に、My-ope officeやToridersといった自社サービスも開発・運営しています。 これらのサービスではRailsの他に機械学習部分をpythonを用いて実装しているので、自分もpythonを触っておきたいと考えて最近興味のあるデー…

seed-fuを使って開発・テスト・本番それぞれの環境でのシードデータを作成する

Railsではrails db:seedという便利なコマンドがあり、db/seed.rbにシードデータを入れておけばコマンドを叩いたら勝手にシードデータを作成してくれます。 ただ、1度だけ使うシードデータを作成する場合はいいですが、例えばシードデータを編集して再度実行…

【Rails】Form Objectを使ってModelに依存しないFormを作成する

Railsを使って開発をしている時、1つのフォームで複数のモデルを操作したい場合やそのフォーム専用の処理が必要になることがあります。 Railsではフォームはモデルに依存しており、上記のようなケースが発生した場合通常のMVCだけでは処理が複雑になってしま…

【Railsの便利gem】スキーマ情報をModelファイルにコメントで書き出してくれるannotate

annotateとは バージョン 導入手順 gemインストール annotateの設定 annotateの実行 スキーマ情報 ルーティング情報 まとめ annotateとは アプリケーションの各モデルのスキーマ情報やルーティング情報を、ファイルの先頭にコメントで出力してくれるgemです…