カテゴリー別アーカイブ: 開発

BitriseやGitHub Actionsでの自動ビルドにJava 11を設定する

Android S(Android 12)だとJava11が必要でアプリの自動ビルドがこけた

スマホアプリの開発者の皆さんはAndroid SのSDK対応を行なうと思いますが、対応が終わってGitにPushすると自動ビルドのサービス側でJava11が設定されておらず、自動ビルドがコケたりします。プロジェクトによってBitriseを使ったり、GitHub Actionsを使ったりしていますが、両方で対応が必要だったため、対応方法を晒しておきます。

続きを読む

Docker上のMySQLにDBクライアントから接続する

Docker上のMySQLにDBクライアントから接続したい

ローカルPC環境や開発サーバー環境でMySQLをDocker上に配置する場合があると思います。ターミナルで頑張って操作するケースもありますが、MySQL WorkbenchやDBeaverなどDBクライアントを接続する場合が多いのではないでしょうか?
Docker上のDBにDBクライアントで接続するときにハマったので接続方法を晒しておきます。

続きを読む

[小ネタ]amplify codegenでiOS向けのGraphQLのリソースの最新の取得できなかった時の対応

AppSyncでスキーマなどが修正された時にamplify codegenで最新の定義を自動生成する。しかし、何度amplify codegenを実行しても最新のスキーマ定義やQueryがAPI.swiftに反映されない現象が発生した。

下記の手順で最新を取得できた。

rm -rf awsconfiguration.json amplifyconfiguration.json API.swift graphql .graphqlconfig.yml
amplify configure project
amplify add codegen --apiId hogehoge
amplify codegen   <= ここで最新が取得できた

外注にソフトウェア開発をお願いする際のポイント

Lichtwork(リヒトワーク)は基本お客様からお問い合わせだったり、ご指名いただく事でシステム開発やアプリの開発をお手伝いさせていただいています。弊社は僕しか社員自体はおらず、他のメンバーはギルド的にデザインだったり、開発面をお手伝いいただくメンバーが数名います。私自身はシステム開発そのものであったり、システム開発についてのコンサルについて担当させていただくことが多いです。

Lichtwork(リヒトワーク)では様々な形態でソフトウェア開発の支援をさせていただいております!

様々なお問い合わせをいただく中で開発を外注に出す時について相談をいただくことが多々ありますので、私的に整理したいと思い、書いてみたいと思います。

続きを読む

[小ネタ]「タタタターン」する黒い画面をカッコよくする

皆さん、Macのterminalはどの様なものでしょうか?私はネット上で技術系の記事を調べる場合に、見た目カッコよくカスタマイズしているターミナルのスクショがあれば調べて、自分も真似する事が多いです。ただ完全見た目重視ですので起動するときにやや時間がかかったりして、使いやすいかどうかは微妙〜だなと思う事もあります。。ただ日々使うツールは見た目かっこいい方がアガるので、見た目かっこいいと思うカスタマイズを優先して取り入れています。

今のterminalは↓の様な感じです。

設定方法を紹介したいと思います。

続きを読む

GitHub Actionsのyamlをローカルで実行する

GitHub Actionsのデバックを楽にするactコマンド

自動でテストやデプロイを行うとき、Travis CIやCircle CI、Bitriseなどのサービスを利用していることも多いと思います。ローカルでJenkinsを使っているというところもあるかもしれません。

以前はこう言ったサービスを使うことが多かったのですが、GitHubでタスクランナーの機能がGitHub Actionsとして2020年に追加されました。このGitHub Actionsの登場で上記のような外部サービスを利用せずに自動テストや自動デプロイをGitHub上で行うことができるようになりました。

ただ、Cirlce CI等を使っていた時も同様でしたが、ジョブの定義のyamlのデバックのため、何回もcommitして四苦八苦するということが多くあり、その際にCommitのログが汚れてしまうということがありました。

GitHub Actionsの場合は act というコマンドでローカルで動作を確認することができます。ローカルで動作確認を行うことで、一通りの動作確認が終わった後にpushすれば良いのでコミットログも汚れませんし、早くyamlの動作確認を終わらせることができますので、導入や使い方を詳細します。

続きを読む

GitHub Actionでnpm testを実行する時のテスト成否の返し方

非同期処理のテスト成否の返し方

GitHub Actionsでstepで何か処理を実行した時、失敗したらエラーが表示され、全てのstepが成功したら処理終了が表示されます。この場合、stepで定義した処理の実行結果によって成否が判断されるため、非同期の処理をテストしたい場合はエラーを投げてあげる必要があります。

続きを読む

GitHub ActionsでFirebase functionsのテストを自動実行する

最近Firebaseを利用して開発する機会が多いため、今回もFirebaseネタです。Firebase Functionsで自動テストする方法を紹介しようと思います。

通常Firebase Functionsでテストを行う場合は、ざっくりとした手順で

  1. 開発している環境でFirebase Emulatorを起動
    • firebase emulators:start --inspect-functions というコマンドを実行
  2. functionsディレクトリで npm test を実行 という感じだと思います。

ローカルで行うのはそこまで大変ではないのですが、CI上で行う場合はEmulatorを設定したり、npm installでmoduleをインストールしたりなど割と大変な環境設定が必要と思われてきました。 先日Firebase summitで割と楽に設定する方法が紹介されていたので、改めて紹介しておきます。

続きを読む

npmライブラリ開発時の公開前のテスト方法

先日初めてnpmでライブラリを公開してみました。感想としては「意外とそんなに難しくなかった」というところです。単純にGitHubでソースコードを公開するだけより、多くの人に使ってもらえそうなのはもちろんのこと、アプリのようにダウンロード数を確認できるので何より励みになります。

私はAndroidやiPhoneのアプリを個人開発して公開したことがありますが、簡単なアプリでもデザインを行ったりしているとそこそこ時間がかかります。アプリのLPサイトの用意やストアに公開するための文言もそこそこ大変です。

続きを読む

Javascriptで非同期処理を同期処理にする方法

最近、firebase-idtoken-getterというライブラリを公開したのですが、Firebase SDKおよびFirebase Admin SDKの関数を利用する必要がありました。

Firebase SDK、Firebase Admin SDKから提供されるインターフェースは非同期の関数ですが、コールバック地獄を避けるためSDKから提供される関数を同期的に扱いたいというシーンです。

Javascriptを使う上で(個人的には)非常に分かりにくいと感じる同期処理について、自分の書き方を紹介します。

続きを読む