koogawa blog

iOS、Android、foursquareに関する話題

個人アプリ開発日誌:AppTrackingTransparency対応した

重い腰を上げて AppTrackingTransparency 対応しました。

developer.apple.com

私のアプリは未だにフル Objective-C で書かれています。あんまりいないと思いますが、ATT対応を Objective-C でやる場合のメモを残しておきます。

まず、

  • AdSupport.framework
  • AppTrackingTransparency.framework

を追加して、ソースコード

#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/AdSupport.h>

を追記します。

次に、IDFA許可ダイアログを表示したいタイミングで次のコードを実行します。

[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
    // 許可してくれたかどうかが返ってくる;
  }];

ダイアログに表示したい文言は Info.plist の NSUserTrackingUsageDescription に記載します。AppTracking はユーザー側にあまりメリットはないですし、IDFA の許可リクエストもほとんど許可してくれないと思うので、「よくわからない場合は許可しなくて大丈夫です」の文言を追加しておきました。

これで完了です。

f:id:koogawa:20210615214532p:plain

Swift と違って、行末に ; が必要なのでご注意ください。

計測について

仕事としてアプリ開発する場合は、IDFAの許諾率等を計測するべきだと思いますが、個人開発のアプリぐらいはあまり数値を気にせずやりたいので、今回の許諾率も計測してません。

ちなみに、普段見ているのはダウンロード数ぐらいで、アクティブユーザ数も把握していません。使いたいときに使って頂いて、不要なときまで無理して使ってほしくない、ぐらいのポリシーでやってます。

申請結果

日曜日の昼に申請して、日付が変わる頃に審査が通りました。最近だと土日も普通にレビューやってるみたいですね。

#WWDC21 What's new in watchOS 8 メモ

ツイートをまとめただけです。

developer.apple.com


#WWDC21 What's new in SwiftUI メモ

ツイートをまとめただけです。

developer.apple.com


#WWDC21 Meet the Location Button メモ

ツイートをまとめただけです。

developer.apple.com

#WWDC21 Meet Xcode Cloud メモ

読みやすさは考慮していません。ご了承ください。

developer.apple.com

6/9現在、Xcode Cloud はベータ版の利用申請を受付中。利用できるようになると連絡が来るとのこと。

「1人でアプリを作る人を支えるSwiftUI開発レシピ」を読んだ

1人でアプリを作る人を支えるSwiftUI開発レシピ (技術の泉シリーズ(NextPublishing))

1人でアプリを作る人を支えるSwiftUI開発レシピ (技術の泉シリーズ(NextPublishing))

  • 作者:佐藤 剛士
  • 発売日: 2020/11/20
  • メディア: オンデマンド (ペーパーバック)

tl;dr

良い本でした。迷ったらポチることをオススメします

読者(ワシ)のスペック

購入したきっかけ

なんとなく雰囲気で SwiftUI 使ってるけど、基礎的なこととか抜け落ちてる知識があるのではないか?という不安があった。実際、次のような知識が抜け落ちていた。

  • layoutPriority
  • Mid座標
  • Text の fixedSize, kerning 等
  • iOS 14 から登場したもの
    • LazyVStack, LazyHStack
    • LazyVGrid, LazyHGrid
    • TextEditor
    • ProgressView
    • Link
    • Label
    • Map

(各項目の内容まで書いてしまうとネタバレになるので、詳しくは買って読んでみることをおすすめする)

完全な初心者向けの書籍ではなさそう

例えば「プロトコル」「クロージャ」等は知っている前提で話が進むので、Swiftの基本的な知識を学んでから読んだほうが良さそう。余裕があれば Apple公式チュートリアルも軽く流しておくと理解が深まる。

最新の iOS 14 Widget にも対応

iOS 14 で新登場した「ウィジェット」の作り方についても解説されている。タイムラインの概念など、公式ドキュメントを読んだだけでは理解しにくい概念についても丁寧に解説されている。

まとめ

まとめると、本書籍は次の方におすすめである。

  • Swift 言語はある程度わかる
  • SwiftUI を体系的に学びたい・学び直したい
  • SwiftUI における iOS 13 -> 14 のアップデートを知りたい

50代以上エンジニアのキャリアストーリー #over50 〜将来のエンジニアライフを考える〜 に参加した

findy.connpass.com

非常に気になるタイトルのイベントがあったので参加してみました。

第1部の50代エンジニアの皆さんによるパネルディスカッションで、特に印象に残ったお話をメモしておきます。


歳を取るにつれてプログラミングの物覚えが悪くなったりとかありますか?脳のスタックは浅くなりますか?

  • 体の柔軟性と一緒で、意識的に動かさないとどんどん錆びついていく
  • 脳のスタックが浅くなったというより、広くなってる
  • 経験値が増えただけなのかもしれない

エンジニアとして苦労してることは?

  • 面白い、かつ、役に立つ、かつ、対価をいただける「仕事」を見つけるのが大変
  • お金のことだけ考えると面白くないし、面白いだけじゃ食っていけないし
  • もしかすると重要なのは「仕事」じゃなくて「人」なのかもしれない
  • たまに化け物みたいな人がいる。そんな人と一緒に仕事ができると色々吸収できて本当に面白い

技術習得にかけられる時間や習得効率が年々下がっている気がします。エンジニアでいつづけるために技術習得で工夫している点があれば教えて下さい

  • 習得効率はむしろ年々上がっている。
  • やっぱり経験値が活かせるし、効率のよい取捨選択が自ずとできるようになってくる
  • コンピュータの基礎的なところ(ビット演算とかメモリ管理とか)はわかっていたほうが良い
    • 例えばDockerを理解するときとか「プロセス管理の発展型なんだな」みたいに繋がってくる。
  • 逆に流行ってるものを次から次へと追っていくのはあまり効率よくない。賞味期限が短すぎる

急がば回れ

これからチャレンジしたい事は?

  • これからもプログラムはやっていきたい。
  • 若い人がやったらあっという間にできちゃうものより、経験値があるからこそできる難しい設計とかやってみたい

今も毎日勉強されてますか?

  • 年を取ると朝普通に起きられる
  • なので、朝起きて勉強してる

イベント中のツイートを Togetter にまとめたので、そちらを見てもらえれば全体の雰囲気が掴めると思います。

自分より年上のエンジニアの話を聞ける機会はなかなかないので、今回のイベントはとても貴重でした。登壇の皆さま、運営の皆さま、ありがとうございました🙏