はじめに
今回は、iOS14から導入されたWidgetを題材として扱いたいと思います。
既に様々なところで Widget の導入について説明されていますが、筆者が気になったのは、
『プッシュ通知の受信起因で Widget を更新することができるかどうか 』
です。
簡単にサンプルを作成して試してみた結果を備忘録として載せておきたいと思います。
今回は、iOS14から導入されたWidgetを題材として扱いたいと思います。
既に様々なところで Widget の導入について説明されていますが、筆者が気になったのは、
『プッシュ通知の受信起因で Widget を更新することができるかどうか 』
です。
簡単にサンプルを作成して試してみた結果を備忘録として載せておきたいと思います。
先日のWWDC2020で NearbyInteraction Framework というものが発表されました。
これは複数端末間の距離や方角を計測するために利用できる Framework だそうです。
今年はコロナの影響で、ソーシャルディスタンスという言葉が叫ばれるようになったこともあり、意識せざるを得ないような内容に感じられたため、
WWDC2020で行われた『Meet Nearby Interaction』セッション動画を元に勉強していきたいと思います。
最近は、iPhone端末も昔に比べて飛躍的にカメラの性能も向上し、
高品質な写真を撮ることができます。
一消費者としては喜ばしい限りなのですが、エンジニアとしては喜んでばかりもいられません。
というのも、画像をクラウド上で保存する機能があった場合に、
容量と品質を天秤にかけざるを得ないことも、まだまだあるからです。
そこで今回は、画像をJPEG圧縮することで、どの程度の品質で容量が変わるのか実験してみたいと思います。
利用するメソッドは下記になります。
1
 |  | 
iOS13からダークモードがiPhoneにも追加され、ユーザニーズからアプリ側でもダークモード対応を必要とされる場面が増えてきました。
一方でiOS12以前のOSをサポートする必要がある場合がほとんどかと思います。
「iOS12ではダークモードが利用できないので、ダークモードが導入できないのでは?」
と思う方がいる可能性を踏まえて、
本日は、今更ではありますが、旧OSをサポートしながらダークモード対応するための Color 定義について見ていきたいと思います。
XcodeでiOSアプリを開発する際に、ほとんどの開発者はドキュメントコメントを書く機会があると思います。
Xcodeでは、メニューバーから
Editor > Structure > Add Documentation
を選択すると、最適な形式のドキュメントコメントを差し込んでくれます。
( または、command + option + / でショートカットできます。 )
実はこの機能が困ったことにXcode11当初でバグがありました。
さて、本日はXcode11から新規似追加された SwiftUI によるiOSアプリ開発について勉強していきたいと思います。
筆者がぱっと見る限り、 SwiftUI は、
xib や storyboard によるUI実装のレビューの難しさの解消に一役買っていると感じました。
また、 SwiftUI での書き方自体は、
これまでのiOSアプリの書き方に慣れている人にとっては、やはりそれなりの準備期間は必要になりそうです。
( RxSwift 使いの方々にとっては比較的とっかかりやすいという話もあります。 )
ということもあり、
実際の業務にて SwiftUI を利用するシーンはまだそこまで増えることはないかもしれませんが、
iOSアプリ開発の実装方法の幅を増やすに越したことはないでしょう。
では、少しずつ SwiftUI について勉強していきたいと思います。
昨今、 Flutter や React Native などによるiOSアプリとAndroidアプリの同時作成が少しずつ現実的に実践されるようになってきており、
筆者的には、2010年代前半以来のリブームのように感じられる今日此頃です。
2010年代前半は、Facebookを筆頭に、最終的にはフルネイティブに舵を切り直すプロダクトが多かったイメージがあるのですが、
各種OSの浸透および安定化に伴い、今回の流れはある程度続く可能性があるのではと思わずにはいられません。
しかしながら、 Flutter は Dart というGoogle製の言語を利用し、
React Native は JavaScript および React の知識が必要になります。
 既に Swift でのiOSアプリの開発や Kotlin によるAndroidアプリの開発に慣れているエンジニアであれば、
 言語書式が比較的似ていることから、OSやIDEの違いさえ把握できれば学習コストは大幅に抑えられる可能性があります。
 一方で、それでは両OSアプリの同時作成の恩恵に預かることができないため、
 何か良いものがないかな〜と思っていたところ、
『 Scadeは、Swiftを使用してAndroidアプリ開発を可能にすることを目指す』という記事を見つけました。
これは面白そうだなということで、今回はScadeについて見てみたいと思います。
「iOS #2 Advent Calendar 2019」の22日目の記事です。
筆者がiOSアプリの開発を始めたのは、約8年ほど前でしょうか。
iOS史上でも初期から強力な機能だったこともあってか、当時はiOSアプリに位置情報の機能を載せることが流行っており、
筆者も漏れなく位置情報に関する調査や機能実装を永遠とこなしていた気がします。
今年でiOSもバージョン 13 となり、昔はなかった機能がたくさん登場しています。
新しい機能は当然、開発者の意欲を掻き立て、未知の世界をユーザに届けることに寄与することでしょう。
ただ、位置情報に人一倍強い思いがあることを自負している筆者ですから、
iOS13が出た今でも位置情報に関する仕様変更があることには感動もひとしおです。
今日は、iOS13からの位置情報に関する仕様変更を『WWDC2019 – What’s New in Core Location』を元に紹介して1年を締めくくりたいと思います。
CocoaPods はiOSアプリエンジニアであれば誰もが知るライブラリ管理ツールだと思いますが、
v1.7.0 以降では xcfilelist を Input/Output File Lists で指定できるようになりました。
( CocoaPods Blog – CocoaPods 1.7.0 Beta! )
Input/Output File Lists とはXcode10で追加された Input / Output Files に代わる、
xcfilelist をパスとして指定できる新たな枠組みです。
既に v1.8.4 までリリースされており、Xcodeも11まで上がっているので今更感はありますが、気になったので少し具体的に差分を見てみました。
先日ふと調べ物をしていたところ、
iOS 13 – Attempting to store >= 4194304 bytes of data in CFPreferences/NSUserDefaults on this platform is invalid
という何やら気になる話を見つけました。
どうも iOS13 からは、 UserDefaults に保存できる容量が 4194304 bytes と制限が追加されたようだと言うのです。
これは実際にやってみるっきゃない!ということで実験をしてみました。