2021-01-01から1年間の記事一覧

Nuxt + TypeScript + Google Maps API

問題発生 Nuxt + TypeScriptで、Google Maps APIを使おうとするとエラーに遭遇。 例えばこのようにgoogle.maps.*を使おうとすると let map: google.maps.Map このようにエラーが出る。 Cannot find namespace 'google'. 解決方法 @types/googlemaps Nodeパッ…

tabBarItem.titleよりtitleが優先される問題

UIViewControllerで以下のようにセットし、それをUITabController#viewControllersに追加する。 title = "全てのエリア" tabBarItem.title = "投稿" この場合、タブの下に表示されるタイトルは、titleの方が優先されるようである。ちなみにtitleはNavigation…

Node.jsでアルファベット混じりの短めのユニークID生成

Node.jsでおなじみのuuidパッケージを使ってUUIDを生成していました。 https://www.npmjs.com/package/uuid ただこれだと 23b7f61b-5d92-40bf-9c2d-1a6da91ac059 のように長くなってしまいます。URLに使うなら長さが短くアルファベットも交えたものにしたい…

Apple Watchにビルド&インストールできない

Watch OS App開発時によく起きる問題。以下で大抵解決します。 ・iPhone再起動・Apple Watch再起動・Xcode再起動・iOSアプリをビルド&iPhoneへインストール・iPhoneでアプリが動いている状態で、Watch OSアプリをビルド&Apple Watchへインストール

icons.js as it exceeds the max of 500KB

Nuxtプロジェクトをビルドすると以下のようなエラーが出てました。 ${パス}/node_modules/bootstrap-vue/src/icons/icons.js as it exceeds the max of 500KB. bootstrap-vueにあるicon.jsがデカすぎみたいです。nuxt.config.jsのbuildに以下を追加して解決…

Nuxtでstore.commitを呼び出すラッパー関数を作る

NuxtのPageやComponentからStoreに値を更新する時、以下のようにstore.commitを呼びます。 this.$store.commit("analytics.incrementClickCount") サーバーサイドでのみ実行されるasyncDataではContextを通じて呼びます。 // Nuxt公式のサンプルではcontext…

GCP FirestoreのEmulatorをKillしたい

以下のようにFirestoreのエミュレータを指定のポートで起動できます。 $ gcloud beta emulators firestore start --host-port=localhost:8081 起動した後、[firestore] Dev App Server is now running.と表示されます。そこでCtrl + Cを押すとターミナルが入…

1つのプロジェクト成り立たせるためにGCPのApp EngineとCloud Functionsで動作させています。App Engine、Cloud Functions両方共通のコードがあります。この共通コードをどこに置くかで小一時間悩みました。 結論から言うと共通コードはリポジトリを分けて、…

TypeScript、Jest、Webpackでimportの際、aliasを使えるようにする

モジュールをimportする際にパスが長くなる場合、aliasを使うことがあります。Node.jsの開発でTypeScriptでソースコードを書いて、Jestでテストして、Webpackでバンドルしてデプロイしている人も多いと思います。aliasの設定は各々の設定ファイルでする必要…

GCP Cloud FunctionsをTypeScriptで書く

Google Cloud Platform(GCP)のCloud FunctionsもTypeScriptで書きたい。そしてデプロイしたい。で、ググるとFirebaseのCloud Functionsの説明ばかり出てくるんですよね・・・FirebaseはFunction作成時にTypeScriptを選択できるみたいだけど、GCPは無理なよ…

MulterのエラーをJSONで返したい時

Node.jsでmutipart/form-dataを受信する場合、Multerを使っている人も多いと思います。Multerに設定したファイルサイズ上限を超えた時など、デフォルトではMulterがHTMLでレスポンスを返してしまいます。Node.jsでAPIサーバーを実装している時など任意のJSON…

PHPickerResult#assetIdentifierがnilになる

iOS 14から使えるようになったPHPickerViewControllerを使うと撮影した写真や動画を選択するUIを提供してくれて便利です!・・・なのですがPHPickerResult#assetIdentifierがnilになるせいで、PHAsset#fetchAssetsで詳細情報を取れずハマりました 理由はPHPi…

IntelliJで意図しないファイルタイプで開くのを解決する

WebStormなどIntelliJ IDEA系ファイルを作った時、たまに拡張子を無視してプレーンテキストとして開かれるようになることがあります。ファイルを削除して作り直しても解決しない・・・この問題は設定で解決できます。 メニューからPreferencesを選択 サイド…

UIImageでAssetsのフォルダ指定できるようにする

画像のAssetsはフォルダ分けできますが、そのままだと UIImage(named: "dir1/icon1") のようにフォルダを指定するとnilが返ってきます。 Assetsに作ったフォルダを選択してProvides Namespaceにチェックを入れるとフォルダを指定してUIImageオブジェクトを取…

AirDropで音はするけど何も表示されない

iPhoneからMacへAirDropでファイルを送ろうとしたら、Mac側で音はするけど受け入れ確認のアラートが表示されないことがちょくちょくあります。Finderを再起動すると直りました。ターミナルで以下のコマンドを打ちます。 $ killall Finder

Wi-Fiオフだと位置取得精度が悪くなる

CLLocationManagerのdesiredAccuracyの話です。Wi-Fiオフにすると位置情報精度が非常に悪くなる現象に遭遇し、よくみたらドキュメントに書いてありました。 Apple Developer Documentation if you set the desired accuracy to kCLLocationAccuracyKilometer…