ボクココ

個人開発に関するテックブログ

いつも夫を応援してくださりありがとうございます。夫に代わり、妻が投稿させていただきます。 夫はかねてより病気療養中でありましたが、8月23日に家族に見守られ永眠しました。頑張って生き抜き、穏やかな最期でした。 生前親しくしてくださった皆様、お世…

TwitterシェアのURL作成 プログラム

ども、@kimihom です。 TwitterシェアのURLを手動で作るケースで、正しく動かないシェアの実装方法をよく見かけました。最新版として、正しくシェアできた方法を本記事に記します。 NG シェアURL まずこの方法は正しく動かないとして URL をシェアします。 h…

SwiftUI4での@Published警告に対応した話

iOS

ども、@kimihom です。 今年ももう終わりですね。 去年、ボクココで書いた記事数は39記事でした。そして、今年も39時目となるこの記事を公開します。サンキュー! 大量の警告通知 今年、SwiftUI4がリリースされ、SwiftUI3で書いていたコードから大量の警告が…

Twilio Voice での音質改善トライ 2022

ども@kimihomです。 このブログ記事は Twilio Advent Calendar 2022 の記事となります。 毎年、Advent Calendar の記事は「まとめ」の内容が多かったですが、今回は最近見つけてやってみた系の記事を記します。 着信音が遅くなる問題 本件は、Twilio Voice J…

Heroku free よ、さようなら

ども、@kimihom です。 今年の9月末、アプリ開発者にとって大きなニュースがHeroku から届いきました。 blog.heroku.com Heroku 無料プランの終了です。 かつて誰もが作ったWebアプリをHerokuへアップし、「私がこれ作りました!」とTwitterでURLシェアし、…

参考になった技術ブログに感謝すると幸せ

ども、@kimihom です。 本記事で伝えたいのは、技術関連で参考になった記事があれば、それは素直に感謝するとみんなハッピーになるということです。 英語でのフィードバック 先日、自分の書いた iOS に関するブログで、嬉しい反応を海外から頂きました。 Whi…

Rails でシンプルな無限スクロール実装

ども、@kimihom です。 久々に無限スクロールを実装する機会が 詠みラボで発生しました。そこで、振り返りがてら、こんな感じで実装するのが個人的に一番シンプルだったコードをご紹介します。 サーバー側実装 俳句(Haiku) をそれぞれ20句ごとに毎回取得し、…

Twilio コンソールのアップデートに関して

ども、@kimihom です。 最近、Twilio コンソールが一気に変わったので、頻繁に利用する自分からの目線としてレポートしておこう。 日本語 Good bye 以前のバージョンは頑張って日本語に翻訳されていたのが、新バージョンで日本語は完全に振り出しに戻った。…

Rails の form_with の submit 時に定義したいオプション

ども、@kimihom です。 Rails の form_with を使っているだろうか?だいぶ前から form 系はフロントエンド側の実装に任せるというのが一般的になりつつあるが、やはり form_with でささっと作れる便利さは大きい。 form_with サンプルコード ja: activerecor…

Twilio での録音から Amazon Transcribe で話者判断

ども、@kimihom です。 先日の CallConnect リリースで、文字化した話者の判断ができるようになった。文字化を見た瞬間に、どちらが担当者で、どちらが顧客の発言かを、すぐに判断できるようになった。これにより、録音音声をわざわざ聞かなくとも、文字化を…

Rails での N+1 の見つけ方と dependent 指定の選択に関して

ども、@kimihom です。 Rails アプリを作っていて「遅くなったな」と感じる場合、真っ先に原因となりうるのが N+1 なコードを書いてしまっていることだろう。その時の理想の対応は何か、考える機会があったのでブログとしてまとめておく。 モデル例 まずわか…

直近のTwilioアップデート確認 2022/09

ども、@kimihom です。 先日 TwilioJP-UG Online Vol.8 - TwilioJP-UG | Doorkeeper が開催された。当日のイベントで急遽プログラム内容が変更となり、最新情報を見ていく時間を取れなかったのでブログとしてまとめておこう。 大枠 まず、以下のページに大き…

Google Search Console でのブログ改善

ども、@kimihom です。 Google Search Console という Google のツールを使ったら、自分のブログの改善点が出てきたので対応することにした。 概要 詳しくははてなブログの特設サイトに譲るとして、簡単に言えば Google etc がより速くWebサイトを表示させる…

脳治療の現状報告

ども、@kimihom です。 前回の記事でたくさん元気をもらえて大変嬉しく思う。なんとか頑張って治療していこうと決心した。 その手術3日前、手術直前の脳の状況を確認したのち、手術は急遽中止となった。その中止は残念ながら良い意味ではなく、悪い意味での…

脳腫瘍の2回目手術に向けて

ども、@kimihom です。 以前の脳腫瘍の手術から2年ほど経った。 www.bokukoko.info www.bokukoko.info そして先月の定期検診で、脳腫瘍の再発が確認され、すぐに手術を改めてやる流れとなった。ここ2年とこれからの決断について記事として記しておこう。 手…

詠みラボ 俳句 UI 改善、称号の機能追加など

ども、@kimihom です。 時間ある時にコツコツ改善を続けている 詠みラボ。 まだ全然 俳句の投稿がない寂しい感じではあるけど、技術的に思いついたのをどんどん作っていく楽しさでサービスが続いているw。 最近アップデートした内容をご紹介しよう。 www.yom…

Swift での HTTPS での音声再生をさせる方法

iOS

ども、@kimihom です。 SwiftUI でアプリ開発をしていると、その情報はもう古かったりして正しく動作しないことが多々あるので、執筆した現時点で動作を確認できたコードとともに解説していこうと思う。 やりたいこと API で取ってきた 音声URLを再生させる …

Swift で複数の型のJSON配列をデコードする方法

ども、@kimihom です。 Ruby とかの型の緩い言語だと、一つの配列に String や Int を詰め込んでも特に実装の手間にはならないのだけど、そのような環境で作った複数の型のあるJSON配列を、Swift 側で処理するのに少し手間取ったので記事しておこう。 実装の…

SwiftUIでのプレビュー機能を使えるようにしよう

iOS

ども、@kimihom です。 iOSアプリ開発でSwiftUIを使っていると、XcodeのCanvas機能を利用することができる。これを使うとわざわざエミュレーターやiPhoneで見ずとも、UIの調整が可能だ。 最初のセットアップさえうまくできれば、かなり便利に利用できるので…

Swift アプリでどんなケースでもログを出す方法

iOS

ども、@kimihom です。 iOSアプリの開発をしていると、以下のようなケースでログが見れないことに不便さを感じることがある。 バックグラウンドで動作している時のログを見たい iOS の電源を再起動した後のログを見たい その他 アプリを開いた状態 以外での…

SwiftUI でのローディングアイコン表示

ども、@kimihom です。 SwiftUI を使ってローディングアイコン(くるくる)を表示させようとした時、まず真っ先に GIF を使おうと思うだろうが、残念ながら GIF サポートは現状ない。何かしらのライブラリを使ったり、自前で動かす実装が必要になる。 というこ…

確率の組み合わせの一番わかりやすい解説にトライしてみた

確率は小学生において最も理解しづらいトピックの1つだ。"順列" まではなんとかわかっても、この"組み合わせ" の計算方法について「なぜそうなるの?」にちゃんと答えられていないことが原因の1つと考える。 そこでご両親や塾講師などが確率の組み合わせをお…

久々に個人開発をした報告 - 詠みラボ

ども、@kimihom です。 個人開発で「詠みラボ」を作って公開までしたのでシェアしよう。 ※ぜひ俳句を作ってください! www.yomilab.com サービス概要 某テレビ番組ですっかり普及してきた「俳句」。これを誰もが簡単に作ってシェアできるWebサービスが見つか…

SendGrid の2つのサービスを同じメールアドレスで利用する方法

ども、@kimihom です。 SendGrid には、”Email Marketing” と "Email API" の2つが提供されている。その2つの説明と、どちらも使うようにする方法などを紹介する。 Email Marketing と Email API タイトルだけで想像がつくと思うけど、Email Marketing は、S…

外部サービスのAPIやWebhook連携をするときに便利なもの

ども、@kimihom です。 仕事を効率化させたり、Webサービスをより快適に使えるようにしたいときに便利なAPIやWebhook。これらを活用する上で必須とも言えるツールを改めて紹介しよう。 API API のメリット API を利用することで、こちらから好きなタイミング…

Chromeでネットの弱い環境を再現する方法

ども、@kimihom です。 とりわけ WebRTCを使ってリアルタイムな通話をしていると、ネット環境の弱いことが原因で、ろくに通話できないという問題が発生する。そのため、ネットの弱い環境を再現して動作を確認する必要が出てくる。本記事ではネットの弱い環境…

宇宙のことがわかってないことをわかった

ども、@kimihom です。 最近はプログラミング関連の本ばかりを読んでいたので、このGWでは全く別の分野で興味のあった本を読んでみた。 「僕たちは、宇宙のことぜんぜんわからない この世で一番おもしろい宇宙入門」 僕たちは、宇宙のことぜんぜんわからない…

iOS CallKit と Twilio Voice iOS 徹底攻略

ども、@kimihom です。 先日の TwilioJP-UG Online Vol.6 はモバイル特集。私からは iOS CallKit と Twilio Voice iOS 徹底攻略として話をしたので、こちらの内容をブログに記しておこう。 なお、今回のスライドはかなりコアな iOS CallKit 内容となっており…

私は技術をこう選ぶ - 10年の経験から

ども、@kimihom です。 プログラミングをしてきて10年が経った今、やってきて良かったこと間違っていたことを振り返りつつ、本テーマを記していこう。私が今まで選んできた技術の成功と失敗について。 今までできなかった何かができるか 最優先とするのは、…

Slack App 移行メモ

ども、@kimihom です。 旧式 Slack App を公開している場合、2022年5月27日までに対応しなければ、App ディレクトリから除外するよ というお知らせが届いた。本記事ではその対応についてまとめよう。 注意 : 移行期限が 2022 年 5 月 27 日まで延長されまし…