サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
kouki.hatenadiary.com
eyJから始まる文字列を見たら https://jwt.io/ を開きたくなる id:kouki_dan です、こんにちは。 この記事ははてなエンジニア Advent Calendar 2024の8日目の記事です。 さて、JWTといえば、eyJから始まる文字列です。なぜかというと、JWTはJSON文字列のBase64URLエンコードを元に作られていて、JSONの最初の3文字になりがちな {"(a-zA-Z)は、どれもBase64エンコードするとeyJから始まる文字列になるからですね。 % echo "{\"a" | base64 eyJhCg== % echo "{\"z" | base64 eyJ6Cg== % echo "{\"A" | base64 eyJBCg== % echo "{\"Z" | base64 eyJaCg== JWTの最初の方の文字列はヘッダ部で、Base64をデ
アプリ内課金の経験を増やしたいな、と思って、個人でアプリ内課金の実装をしてみたいな、と思っていました。アプリ内課金、特にサブスクリプションは審査に通す難易度が高いと言われています。 作ったアプリの宣伝 PhotoGuesserというアプリを作りました。 PhotoGuesser Kouki Saitoエンターテインメント無料apps.apple.com 動画を撮ったので見てみてください!もしくはインストールして触ってみてください! www.youtube.com 実はiPadで開発しています。どうやってやっているの?と思った方はこちらもみてください! kouki.hatenadiary.com サポートURLはちゃんとしたものを使う App Storeではアプリごとに、サポートURLが必須になっています。これは開発者に連絡を取るための手段で、これまではXなどのURLで通っていたので、今回も
これははてなエンジニアアドベントカレンダー2022 39日目の記事です。 昨日は id:nakaoka3 の ミーティングの時間になると勝手に議事録を開いてほしいでした 先日あった、CircleCIのインシデントのAdditional security recommendationsとして、OIDC Tokenを使うことが推奨されていました。GitHub ActionsやCircleCIなどのCI/CDサービスでは外部サービスへの認証を行うために、OpenID Connectに対応しています。OpenID Connect対応がされていることは知っていたのですが、OpenID Connectといえば、外部サービス連携をしてログインに使うイメージだと思います。たとえば、Googleの認証情報で、はてなアカウントにログインするなどといったようにです。僕の中で、ユーザー認証に使うOpenID Co
この記事は はてなエンジニア Advent Calendar 2022の15日目の記事です。はてなではモバイルアプリのエンジニアとして働いていて、主にiOSアプリを主領域としています。最近記憶がなくなったらどうしようと考えていたので、突然記憶喪失になっても仕事に困らないように記事にしてみました。僕ならこうしたい、ということなので、全ての人に再現性のあるわけではないとは思いますが、プログラミングをゼロから勉強するときの参考にも、少しはなると思います。 プログラミングを覚えた頃 プログラミングを覚えた頃の話は覚えていますか?僕はあまり覚えていません。 最初に触ったプログラミング言語は覚えていて、それはC言語です。モノづくりが好きだった僕がプログラミングに出会い、プログラミングの面白さと可能性を感じて、猫でもわかるプログラミングのC言語編をやりました。 猫Cは途中でCGIをC言語で実装する章があ
こういうツイートをしたんだけど何も反応がなかったのでブログにも・・・・ お客様の中にNavigation BarのY位置がDynamic Islandを持つデバイスでhttps://t.co/IZANgdh7Fwと一致しなくなっていることにお困りの方はいらっしゃいませんか〜〜〜— こーき@だん (@kouki_dan) 2022年10月17日 iPhone 14 ProにおけるSafe areaとナビゲーションバーの扱い iPhone 14 ProでDynamic Islandが導入されましたが、Safe areaの扱いも色々と変わっていそうで、以下のスクショを見てもらえるとわかります。 view.safeAreaInsets.topと ---------- の下の計算結果は、これまでのデバイスでは一致していました。つまり、ナビゲーションコントローラーなしのSafe areaにナビゲーショ
この記事は はてなエンジニア Advent Calendar 2021 の16日目の記事です。昨日は id:masayosu の はてなにおけるCloudNative推進会の活動について でした。 サブ会という仕組みで専門領域における情報共有や深い議論ができるようになっていて、僕もスマート会*1に所属しています はてなではリリースブランチへのマージPRの管理にgit-pr-releaseをよく使っています。 git-pr-releaseは現在のリリースブランチのheadとの差分にあるPull Requestを一覧して、リリース前にチェックできます。このgit-pr-releaseはとても便利で、git-flowのようなブランチ戦略に非常にマッチしています。 一方、リリースブランチのないGitHub Flowのようなブランチ戦略を取った場合、リリースブランチが作られないため、マージ先のブラン
iOS 14から使えるStateObject、とても便利ですよね developer.apple.com ObservableObjectなどを初期化するときに便利です。 class Object: ObservableObject { @Published var value = "value" } struct Content: View { @StateObject var object = Object() var body: some View { Text(object.value) } } ただ、これはiOS 14以降でしか使えないため、iOS 13に対応が必要な場合は使えません。代わりにObservedObjectを使います。 struct Content: View { @ObservedObject var object = Object() var body: som
最近iOSアプリ開発を振り返るタイミングがありました。どういうことかというと、いきなり宣伝になるのですが、先日発売したWEB+DB PRESSでiOSアプリ開発の最前線についての特集を同僚のid:cockscomb、id:yutailang0119と一緒に執筆しました。 gihyo.jp Macを手に入れてiOSアプリの開発を始める iOSアプリ開発を始めるにはMacを手に入れる必要がありますね。僕がiOSアプリ開発を始めたきっかけは、2011年ごろにスマホブラウザゲーム開発コンテストの9leap*1で入賞して、MacBook Airをもらったことでした。iOSアプリ開発の最初の壁とも言えるMacを手に入れることができて、Macの快適な操作性、SSDによる爽快な動作、美しいフォント、統一された体験を感じ、一瞬でAppleのファンになりました。 当時からプログラミングは好きだったので、当然の
ソースコードをパッと見せられてアルゴリズムの名前を答える早押しクイズやりたい— こーき@だん (@kouki_dan) 2021年2月5日 最近アルゴリズムの話題をよくTwitterで見かけるので、こういうクイズあったら面白いかも?と思ったので作ってみました こちらから遊べます! アルゴリズム検定!ソースコードを見て正しいアルゴリズムを選んでね! リポジトリはこちらです: GitHub - kouki-dan/algo-q 僕はアルゴリズムプロではないので間違ってたらPRください!*1 編集後記1 1問目、めっちゃコードの量を短くしていて読みにくくしてるだろ!って思った方もおられるのかもしれないですが、最初はニコニコQのテキスト入力機能を使って実装しようとしていたので、100文字制限がありコードゴルフをしていました 2乗の枝刈り削除や、if文の省略などにより、100文字以下を達成できたので
最近Next.jsとFirebaseばかりやっています。って書きましたが、本当はこの一ヶ月どうぶつの森しかやってませんでした。どうぶつの森のプレイ時間は200時間を超えました。 そろそろエンジニアとしても生活したくなってきたのでエンジニアっぽい話をします。Next.jsで作ったアプリをデプロイする先の選択肢として、Verselを使うと便利です。 SSRが必要なく、静的ファイルをデプロイすれば良い場合はFirebase Hostingなども選択肢に入ります。Firestoreなどと組み合わせて使っている時は、設定を工夫することで便利に使うことができます。今回の記事ではNext.jsで作ったアプリをFirebaseと組み合わせて使う方法を紹介します。 Firebase HostingにNext.jsの静的生成機能を使ってデプロイする まずは、npm initから始めます。 npm init n
最近は趣味でGolangとTypeScriptを書いています。Golangのドキュメントを見ていると気になる記述を見つけたのでブログに書き残します。 ここに書いてあることです。 github.com あるモジュールをテストしたい時に、モックのためにインターフェースで公開する場合があります。 ここではwikiの例をお借りして、Thingerという型がThingというメソッドを持っている場合について記述します。 // DO NOT DO IT!!! package producer type Thinger interface { Thing() bool } type defaultThinger struct{ … } func (t defaultThinger) Thing() bool { … } func NewThinger() Thinger { return defaultT
こんばんは! id:kouki_dan です! この記事は、はてなエンジニア Advent Calendar 2019の8日目の記事です。 昨日は id:hokkai7go さんのはてなSREチームにおけるスクラムの実践というタイトルでJuly Tech Festa2019に登壇しますでした。July Tech Festa2019はちょうど今日行われているみたいなので、どんな発表が行われるか楽しみですね。 今日はSlackで遊ぶ話をします。 僕とSlack 僕はSlackで遊ぶのが好きで、これまでSlack上で将棋ができるようにしたり、Slack上でボンバーマンで遊べるようにしたりしてきました。今日はSlackで遊ぼうシリーズ第三弾として、最近作ったものの紹介と技術的な話をします。 ところで、僕は最近クイズにハマっています。みんなで早押しクイズという早押しクイズのアプリでは、Aランクまでや
GitHub Actionsがマイブームです。とても便利なGitHub Actionsですが、「ボタンを押してデプロイ」のようなことができないのが不便でした。 GitHub Actionsをトリガーするボタンを作るサービスを作りたいって思ってるけどこれあと5分待てば公式から出るでしょと思い続けて2週間近く経ちました— こーき@だん (@kouki_dan) September 4, 2019 5分待てば公式のものができると思いつつ、なかなか出ないので作ってしまいました。 作ったもの Action Buttonというサービスを作りました。 リポジトリはこちらです GitHub Actionsのトリガーには外部イベントをトリガーとする repository_dispatch というものがあります。 ワークフローをトリガーするイベント - GitHub ヘルプ 任意のリポジトリに対し、この re
FirebaseとGitHub Actionsがマイブームの id:kouki_dan です。 つい先日Firebase App Distributionがリリースされましたね! firebase.google.com FirebaseはFabricの機能を順次Firebaseで扱えるようにしていますが、App Distributionは今までFabric Betaで行なっていたBeta版、テスト版のアプリを社内やテスターの方に配布できるサービスです。 似たようなサービスとしてはDeployGateが有名ですね。 そんなFirebase App DistributionをGitHub Actionsで使ってみようというのが今回の記事になっています。GitHub Actionsのおかげで、外部CIを使うことなくビルドの自動化が行えるようになりました。 iOSアプリのDistribution
.appというgTLDをご存知でしょうか。gTLDはgeneric top-level domainの略後で、ICANNが管理しているトップレベルドメインのことです。 有名どころでは.comや.net等があります。このブログのURLは https://kouki.hatenadiary.com ですが、この.comの部分がトップレベルドメインです。*1 このトップレベルドメインはICANNという組織が管理しています。2012年までは限られたトップレベルドメインしか存在しませんでしたが、2012年の公募では基準を定め、その基準を満たした団体は自由にgTLDを作ることができるようになりました。これ以降大量のトップレベルドメインが登録され、今では様々なドメインを利用することができます。 その中の一つ、appドメインが去年話題を呼びました。 appドメインはセキュアなドメイン そんなappドメイン
土曜日の夜のことです。ふと友達とslackで話していて将棋がやりたいね。という話になりました。 当然将棋をやるためには、将棋盤と駒が必要で、それらを動かし、更にその状態を最低2者間で共有する必要があります。手軽に無料でこれらの事がどのような環境でもできるサービスは私達の知るところ存在しません。近いところで言えば、将棋倶楽部24や、将棋ウォーズでしょうか。それらでさえも、有料であったり、時間制限が強要され友達同士で自由に対局を行いにくいという問題を抱えています。幸いにも僕たちはエンジニアで、ないものは創りだす事ができます。当然今回も手軽にできてマルチプラットフォームの将棋を作ろうという事になりました。 Slackというプラットフォーム 皆さんはSlackというサービスをご存知でしょうか。社内チャットとして有用だと言うことで広まったこのサービスですが、現在においてはオープンソースコミュニティで
このページを最初にブックマークしてみませんか?
『kouki.hatenadiary.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く