Lento con forza

大学生気分のIT系エンジニアが色々書いてく何か。ブログ名決めました。

節約でもしてみようかなと思って支出管理アプリを作っている

何か生活習慣を変えたい時、とりあえずアプリを作りたくなりますよね。 僕はお金はあったらあるだけ使っているのですが、いつの間にか20代も終わり、若さを理由に投資と言い訳して無駄使いをするのはそろそろ抑えた方がいいんじゃないかなぁと思い至りました…

SSGで最新のはてなブログ記事を表示する部分をWebhook機能で常に最新にする

最近AIに自分のポートフォリオサイトを作ってもらいました。 kouki.hatenadiary.com このサイトに最新のブログ記事も表示したいなぁと思って、Copilot Agentにお願いしたら、これも一瞬でAIが作ってくれました。 技術ブログと日常ブログで最新3件のブログを…

自分のポートフォリオサイトをAIに作らせた

最近何をするにも生成AIが話題ですね。 というわけでAIに自分のポートフォリオを作らせました。今回はCopilot Agentに働いてもらいます。モデルはClaude 3.7 Sonnetです。 ポートフォリオサイトをAstroで作ろっかな〜と思って、 npm create astro とだけして…

eyJから始まらないJWTを作りたい

eyJから始まる文字列を見たら https://jwt.io/ を開きたくなる id:kouki_dan です、こんにちは。 この記事ははてなエンジニア Advent Calendar 2024の8日目の記事です。 さて、JWTといえば、eyJから始まる文字列です。なぜかというと、JWTはJSON文字列のBase…

App Storeでサブスクリプションのアプリ内課金を審査に通すまで

アプリ内課金の経験を増やしたいな、と思って、個人でアプリ内課金の実装をしてみたいな、と思っていました。アプリ内課金、特にサブスクリプションは審査に通す難易度が高いと言われています。 作ったアプリの宣伝 PhotoGuesserというアプリを作りました。 …

iPadだけでアプリを作る、そしてXcodeと連携する

以前iPadだけでアプリを作るというエントリを書いていました。このエントリはその続編です。 kouki.hatenadiary.com 以前のエントリでは、iPadだけで作ったアプリをストアに出すという目標は達成できていました。次はそれなりに実用的なアプリをiPadメインで…

iOSDC Japan 2024参加録

iOSDC Japan 2024に参加してきたぜ!! 参加前 プロポーザルを出して採択していただいたので、スライドを作っていたり、いろいろ準備をしていました。 fortee.jp 僕の所属している株式会社はてなではスポンサーをしていて、iOSDCチャレンジのためのトークン…

Apple Watchのアプリを作って世界を少しだけ便利にしよう

こんばんは、Appleファンの id:kouki_dan です。 皆さんはスマートウォッチをお使いですか?僕はApple Watchを使っています。腕に何かをつけるのは嫌いな僕でしたが、Appleが腕時計を出すということで、観念して腕時計をつけることにしました。 今では、時間…

WorkoutKitでApple Watchのワークアウトを作成してみたい

WWDC23で新たにWorkoutKitが追加されています。これはApple Watchのワークアウトを作成できるもので、たとえばダイエットしたい人向けに、その人にあったワークアウトを提供するような用途として使えます。例えば、以下のようなワークアウトを作成できます。…

iOSアプリ開発における写真ライブラリへのアクセス方法

この記事ははてなエンジニア Advent Calendar 2023の2024年1月18日の記事です。 iOSアプリ開発で、ユーザーが過去に撮影した写真をアプリから使いたいケースはよくあると思います。例えばメッセージング機能を持つアプリでは必須の機能でしょう。メッセージ…

MacでFirebase Hostingのemulatorが起動できない

FirebaseのEmulatorが起動できない現象に遭遇した。 kouki_dan% firebase emulators:start --only hosting i emulators: Starting emulators: hosting ⚠ hosting: Port 5000 is not open on localhost (127.0.0.1,::1), could not start Hosting Emulator. ⚠…

iPadだけでアプリを作ってみる

この記事は はてなエンジニア Advent Calendar 2023の8日目の記事です。昨日は id:chris4403 の GAS x YouTube Data API v3 ではてブで人気のYouTube動画のプレイリストを作るの巻 でした! はてブを元にプレイリストを作るのは面白そうですね。他にもたくさ…

WEB+DB PRESSの思い出

WEB+DB PRESSが休刊になった。休刊になると聞いた時は衝撃で、育ててもらった恩のある母校が廃校になるかのような感覚だった。 その最終巻であるVol.136が先日発売された。内容はいつも通りなのが良かった。 gihyo.jp 読み進めていくと、いつも通り、Web開発…

ULIDはタイムスタンプ領域を使い切ったらどうなるのか

ULIDのような時間で並び替えられるIDは便利ですよね。 github.com スペックによると、48ビットがタイムスタンプ領域だそうです。これを使い切るのは 10889年だとも書いてあります。 これを使い切った後どうなるのかが気になったので、調べてみましたが、スペ…

iOS 16.4でWKWebViewのインスペクタが見れなくて困っている人はいませんか? isInspectableをtrueにしましょう!

Web Viewを使っているアプリを開発している時、PCのSafariのインスペクタによるデバッグは便利ですよね! Safariの開発者ツールによるデバッグは便利なのですが、iOS 16.4でなぜか表示されなくて困っていました。 タイトルに答えは書いたのですが、isInspect…

Xcode 14.3ではSwiftUI Previewでprint()の内容が確認できる

SwiftUI Previewでビューを作っている時、printデバッグがしにくくて困ったことはありませんか!? これまでPreviewではprint()の中身が表示されなかったのですが、Xcode 14.3のリリースノートを眺めていたところ、これが改善されたようです! Xcode 14.3 Re…

ChatGPTでアプリを作る Part4 いよいよアプリの機能を作っていくぜ

ChatGPTでアプリを作ろうとしています、id:kouki_dan です。 前回のPart3では、ログイン、ログアウトの画面を作ってきました。それも、ChatGPTが書いてくれたコードをコピーしてペーストしていくだけでです。 kouki.hatenadiary.com 今回は、順番的にいうと…

ChatGPTでアプリを作る Part3 ログイン/サインアップ

ChatGPTでアプリを作ろうとしています、id:kouki_dan です。 前回のPart2では、どんな画面を作れば良いかをChatGPTに聞いてみて、まず作るといいと言われたスプラッシュ画面を完成させました。 kouki.hatenadiary.com 今回はきっと、ログイン/サインアップを…

ChatGPTでアプリを作る Part2 スプラッシュ画面を作るといいらしい・・・?

ChatGPTでアプリを作ろうとしています、id:kouki_danです。 前回のPart1では、技術選定をChatGPT主導でやっていきました! kouki.hatenadiary.com 次は、いよいよアプリ作成に入っていきましょう! まずは、作るべき画面を聞いてみました! 正直、スプラッシ…

ChatGPTでアプリを作る Part1 技術選定編

ChatGPTが異常な勢いで浸透していますね。ミーハーな僕としては、この波に乗らないわけにはいかないです。 僕はエンジニアなので、まずは自分の得意な領域であるアプリ開発を試してみようと思います。イメージとしては、ChatGPTとのペアプロです。僕がナビゲ…

OpenID Connect連携を使ってGitHub ActionsからFirebase App Distributionでアプリを配布する

以前GitHub Actionsから、Firbease App Distributionにアプリを配布するエントリを書きました。 kouki.hatenadiary.com エントリを書いた時のFirebase App Distribution認証では、ユーザーのトークンを使っていました。時代は移り、サービスアカウントや、Op…

CI/CDサービスのOpenID Connect対応 Dive Into

これははてなエンジニアアドベントカレンダー2022 39日目の記事です。 昨日は id:nakaoka3 の ミーティングの時間になると勝手に議事録を開いてほしいでした 先日あった、CircleCIのインシデントのAdditional security recommendationsとして、OIDC Tokenを…

僕のエンジニアとしての情報収集ルーチン

ハッピーホリデー!今日は12月24日、なんの日でしょう? そうです! WEB+DB PRESS Vol.132の発売日です! 本日発売のWEB+DB PRESSに、同僚のid:cockscomb、id:yutailang0119 と一緒に書いた iOS 16 最前線が載っています!よろしくお願いします!! gihyo.jp…

僕が全ての記憶を失った時に今のレベルのiOSエンジニアに戻るための道標

この記事は はてなエンジニア Advent Calendar 2022の15日目の記事です。はてなではモバイルアプリのエンジニアとして働いていて、主にiOSアプリを主領域としています。最近記憶がなくなったらどうしようと考えていたので、突然記憶喪失になっても仕事に困ら…

Dynamic IslandがあるiPhone 14 ProなどでナビゲーションバーのminYとsafeAreaInsets.topが一致しなくなっている

こういうツイートをしたんだけど何も反応がなかったのでブログにも・・・・ お客様の中にNavigation BarのY位置がDynamic Islandを持つデバイスでhttps://t.co/IZANgdh7Fwと一致しなくなっていることにお困りの方はいらっしゃいませんか〜〜〜— こーき@だん …

UIHostingControllerとUINavigationControllerを組み合わせてleftBarButtonItemをカスタマイズするまで

SwiftUIは進化を続けていて日々できることが増えています。iOS 16ではナビゲーションのAPIが拡充され、より柔軟な画面遷移の実装がSwiftUIだけでできるようになりました。 画面遷移はUIKitで実装 一方、サポートOSのバージョンの都合で最新のAPIが使えない場…

iOS 16+のTextFieldは複数行を入力可能 【WWDC22】

WWDC前にSwift Playgroundsで遊んでいた時に、複数行を入力したくなって、TextEditorをTextFieldっぽく使う方法を紹介しました。 kouki.hatenadiary.com 今週はWWDCがあり、そこでTextFieldの拡張が発表されました!なんと、TextFieldでTextEditorのような複…

SwiftUIのTextEditorでもプレースホルダーを使いたい

---WWDCアップデート--- WWDC22でのアップデートで、iOS 16以降は標準のTextFieldでこれを実現できるようになりました!こちらも合わせてご確認ください!こちらの記事はiOS 15以下向けのものとして、参考にしてください。 kouki.hatenadiary.com SwiftUIで…

GitHub ActionsのCustom Actionからリポジトリ内のファイルにアクセスする

最近GitHub Actionsを便利に使うためのCustom Actionを作っていました。 kouki.hatenadiary.com このActionに設定をリポジトリ内のファイルから取得する機能を追加したくなったんですが、この機能のためだけにcheckoutするのもなぁ、と悩んでいました。 具体…

GitHub Actionsで次のリリースにどんな変更が含まれるかを可視化する

この記事は はてなエンジニア Advent Calendar 2021 の16日目の記事です。昨日は id:masayosu の はてなにおけるCloudNative推進会の活動について でした。 サブ会という仕組みで専門領域における情報共有や深い議論ができるようになっていて、僕もスマート…