ボクココ

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

SwiftUI で快適なログインUIを作ろう

iOS

ども、@kimihom です。 SwiftUI を使ってログインをより快適にする対応をしたので、その実施内容についてまとめておこう。 テキストフォーカス ログインをしようとするページの場合、ほぼ必ず最初はメールアドレスなどの入力から始まることだろう。iOS の場…

Ruby, Rails アップデートログ

ども、@kimihom です。 自社サービスの CallConnect で、 Ruby 3.1.1, Ruby on Rails 7.0.2.3 へアップデートが無事完了した。本記事では、対応した内容に関してまとめておこう。 button_to の挙動変更 button_to で View を展開された際の HTML が <input> タグか…

Twilio Voice JavaScript 2.0 以降での複数着信の受け取り方

ども、@kimihom です。 Twilio コミュニティの中で、「1本目の着信が来た後、続けて2本目の着信が来たときに、1本目の着信を出られるようにしたい」というケースで質問をいただいた。まさにそのケースの対応を自分も実装したので、コードを含めて説明してい…

慣れないインデックス貼り vol.2

ども、@kimihom です。 前回のインデックス貼り に続き、インデックス対応についての追記を記す。 外部キー のインデックスの効果 よく、関連する外部キーにインデックスをデフォルトで貼る書き方がある。 class CreateTweets < ActiveRecord::Migration[5.0…

Webサービス障害時にAmazon Connectから通知

ども、@kimihom です。 Web サービスを運営していれば障害は付き物なので、その対策を検討した結果について記しておこう。 障害検知 きっかけとなったのは、起きている昼間だったら定期的に Slack 通知などをみながら様子を見て、誰かが発見したら共有すれば…

Rails7 で jQuery をセットアップ

ども、@kimihom です。 Rails 7 がリリースされてから暫く経つが、基本的な部分がまだシェアされてないことが多い。本記事では Rails 7 注目のフロントエンドのセットアップについて記す。 追記 jQuery 自体はこれでインポートできたが、jQueryプラグインな…

Lingvist を使ってエンジニア英語学習

ども、@kimihom です。 3ヶ月くらい前から改めて英語学習を再開している。色々と選択肢がある中で Lingvist というアプリを使っているので、その理由と実際にどうかを報告する。 Lingvist はどんな人に向いている? ズバリ、ひたすら英単語を覚えたい という…

Shopify プライベートアプリからカスタムアプリへの更新

ども、@kimihom です。 先日、Shopify からプライベートアプリの終了に関して連絡がきた。カスタムアプリへ移したので、そのログを記事にしておこう。 Shopify からの連絡 Private apps are being replaced by custom apps, with no action required from yo…

0->1 サービス開発者の慣れないインデックス貼り

ども、@kimihom です。 本記事は、普段アプリケーションエンジニアとして 0->1 でのサービス開発をやってきて、クエリ処理が重くなってどうしたものかという状況へ達した際に考えたいことをまとめてみる。 インフラエンジニアか自分でやるか まず、サービス…

他人にどう思われようと続けることの大切さ

ども、@kimihom です。 カフェでのんびりしていると、カフェ内にあったピアノで、突如ピアノ演奏を始めた方がいた。お世辞でも上手だとは言えない腕前なんだけど、それでも1時間以上、いろいろな曲を弾いていた。 そこで思ったことを1つ記事にしてみよう。 …

Amazon CloudWatch でのエラー通知

AWS

ども、@kimhiom です。そしてあけましておめでとうございます、今年もよろしくお願いします。 AWS Lambda でエラーが起きた時、どのように通知を受けているだろうか。ものすごい一般的な内容にもかかわらず、AWS 側の設定が多くて面倒だったので、参考サイト…

Twilio 録音セキュリティの考察と実装

ども、@kimhiom です。 この記事は Twilio Advent Calendar 2021 23日目の記事となります。他のも是非みていただければと〜。 近年は セキュリティに関して多くの方々が意識するようになり、私にとって Twilio での録音ファイルをどのように管理するのかにつ…

Heroku CI の導入と得られた結果

ども、@kimihom です。 この記事は、Heroku Advent Calendar 2021 の 18日目の記事です。ぜひ他の記事も読んでみていただければと思う。 今回は、つい最近 Heroku CI や Pipeline を導入したこと、そしてセキュリティ事情 について記す。 導入前の開発環境 …

Twilio Meetup Vol.4 の LT 補足

ども、@kimihom です。 先日の TwilioJP-UG Online Vol.4 のイベントで、久々に話をさせてもらったので、その内容と所感について記す。 SIGNAL での Twilio Live 私は早めに切り上げさせてもらったのだが、序盤の話の中では 今回の SIGNAL で新しく出てきた…

複数の SaaS を開発すべきでない理由

ども、@kimihom です。 開発した一つの SaaS が多くのユーザーに使われるようになった時、別のサービスを作り始めるケースがよくある。これらは失敗するので、自らの経験と共に記しておこう。 Atlassian や Basecamp(37 signals) プロダクトを全て使うのか …

SaaS におけるウェビナー、ビデオ通話、YouTube 動画の決断

ども、@kimihom です。 リードや顧客に情報提供する上で、動画で映像や音声をシェアする方法をとることがある。今までの経験から、どの方法を取るといいのか、私なりの考えを記していく。 ウェビナー ウェビナーは ウェブセミナーとして、動画の生放送をして…

長野で山と空を見る(登山ログ)

ども、@kimihom です。 久々に登山をした。場所は霧ヶ峰。いつもエアコンで身近に思えてた霧ヶ峰だが、実際はどんなところか興味があったわけである。 登山の魅力 改めて登山の魅力を感じられた。個人的には以下の3点が特にモチベーションとなっている。 別…

iOS の Launch Screen の伸び対応

iOS

ども、@kimihom です。 iOS 開発をしてて、Launch Screen の対応が案外うまくいかなかったので、同じ思いをする人が減ることを祈りつつ記事として残す。 問題 2021 年時点で iOS アプリの起動時のスクリーン(Launch Screen) は、iOS プロジェクト内にある In…

論理的思考(ロジカルシンキング) を考える

ども、@kimihom です。 今回の首相選挙は、ロジカルに国民を説得させることに重点を置いている候補者が注目されている(誰とは言わない)。ちゃんと国民が納得した説明ができれば、新しい政策もうまく進んでいくだろう。 ここ半年間、どんどん感染が広がってい…

iOS CallKit と Twilio Voice iOS 実装

ども、@kimihom です。 ここ半年くらいずっとやってきた CallKit を使った開発について、1つ記事にしてみよう。 参考 はじめよう - Twilio TwilioVoiceSDK Class Reference Sansan音声通話の裏側 【前編:CallKit/PushKit 】 - Sansan Builders Blog Sansan…

SwiftUI と Combine による REST API 通信

iOS

ども、@kimihom です。 SwiftUI を使って REST API 通信をしてアプリを作っていく上で、一通りまとまってる方法がなかなか見つからなかったので、現在の実装をまとめておく。 Combine を使った定義 Combine はあくまで 非同期イベントをハンドリングするフレ…

SwiftUI での プロパティオブサーバの使いどき

iOS

ども、@kimihom です。 引き続き iOS の開発をしているけども、その中でプロパティオブサーバについて実際の利用例を示しながら便利さについて記してみる。 fullScreenCover での画面切り替え 特定のタイミングで特定の別画面を表示させたい時に、fullScreen…

SwiftUI での オプショナル(Optional)型の対応

iOS

ども、@kimihom です。 ここ最近は Swift をいじっている。実装してみると、最初はこの Optional 型のコード意識の面倒さを感じていたが、慣れてくると便利だなと思えるようになってきた。 自分の認識をまとめる上でも、記事として記しておこう。 Optional …

Twilio コンテストで 新技術を始めよう

ども、@kimihom です。 今現在、Twilio 技術を使ったコンテストが2つ開催されている。 TwilioQuestオペレーター養成キャンペーン Twilioオンラインコンテスト2021 Protopedia|Twilio - KDDI Web Communications Twilio は LEGO のようだと言われている。LEG…

TwilioJP-UG Online Vol.2 開催メモ と Twilio Voice SDK 2.0

ども、@kimihom です。 Twilio コミュニティの オンライン Meetup が開催された。 TwilioJP-UG Online Vol.2 Doorkeeper YouTube 最新情報 日本語 Blog 1 Blog 2 Blog 3 私の担当である Twilio 最新を追いかける係として、ブログにも記しておく。 Twilio Vid…

トレーニングジムでのメニューKAIZEN

ども、@kimihom です。 もう5年ほど続いているスポーツジムでのトレーニングだが、どんなトレーニングをしていくかについて定期的に考えて改善を続けている。そこで現時点でのスポーツジムでのメニューに関してまとめておこう。 体を温めるウォーキング まず…

ブログを書き続ける技術

ども、@kimihom です。 読者の皆さんは、何か10年続けたものをお持ちだろうか? 「今年は体を鍛える!」「今年は英語の勉強をしっかりとやる!」 そんな思いを年の初めにしたところで、それが1,2 年 で終わっているケースがほとんどだろう。 つまり、"どんな…

未来のエンジニア同僚を考える

ども、@kimihom です。 長い間ブログ更新が止まってしまっていた。最近は技術の部分だけでなく、採用の部分で頭を悩ます時間が多くなってきている。CTO という立場上、採用に時間を割くのは必要なことである。 数人しかいない会社での採用 今年の初めくらい…

JavaScript 圧縮ライブラリ for Rails

ども、@kimihom です。 今更かもしれないけど、AssetPipeline での圧縮ライブラリについて進展があったので記す。 Rails フロントエンドのライブラリ 長らく、Rails での AssetPipeline で、 JavaScript の圧縮といえば Uglifier であった。しかし、この Ugl…

熱海での日々とこれから

ども、@kimihom です。今は自粛して行けないけども、熱海での日々を思い出す。 独り言ブログを記しておこう。 ブログを見返すと、2014年ごろから、熱海に住み着いてプログラミングをしていた。一人で朝ビーチ沿いを走り、温泉につかり、そしてプログラミング…