iOS
iOS 16.1シミュレーターで確認してみた。 @2x @3x UIButton.Configuration.Size.large 50.5 50.33… UIButton.Configuration.Size.medium 34.5 34.33… UIButton.Configuration.Size.small 28 28 UIButton.Configuration.Size.mini 28 28 特別にHuman Interfac…
なぜ アプリの初回起動時専用の特別な処理や画面遷移を行うケースで、そのデバッグ実行・動作確認をするため。 iOS まずインストールするためのアプリは Build For Running でビルドしておく。次にシミュレーターを起動しておいて xcrun simctl install boot…
https://github.com/uber/mockolo/releases/download/1.7.0/mockolo.tar.gz に含まれる mockolo バイナリがarm64アーキテクチャーにしか対応していなかった。これだとAppleシリコンMacでは実行できるが、Intel Macでは実行できない。 $ file mockolo mockolo…
iOS(ないしAppleプラットフォーム全般)のFirebaseといえばこれまでインストール方法はCocoaPodsが基本だったが、バージョン8.0.0からSwiftPMでもインストールできるようになっている。 https://firebase.google.com/docs/ios/installation-methods#swift-p…
App Store Connectのドキュメント(ヘルプページ)にはこうあります: 自動更新登録は、1 か月間の日数ごとではなく、最初の購入の暦日と同じ日に更新します。たとえば、カスタマーが 1 か月の無料トライアルを 1 月 7 日に開始する場合、トライアルが終了す…
あけましておめでとうございます。新年一発目の投稿は2019年の思い出です。 そういえば去年面白かったバグで、とある有効期限チェックで、2019年8月から半年後の月末が2020年2月末、つまり閏年なので2月29日になるのだけど、よくある和暦バグと組み合わさっ…
こんにちは、id:ikesyoです。これは はてなエンジニア Advent Calendar 2019 17日目のエントリーです。 昨日12月16日(月)に行われた 年末だよ Android/iOS Test Night - 2019 にて、『2019年のSwiftモック事情』という発表をしました。 Swiftでテストのた…
こんにちは。iOSDC Japan 2019の0日目参加のため東京に上陸しております id:ikesyo です。明日1日目の16:15からTrack Bで『5分でわかる!Xcode 11から使えるXCFrameworks』というタイトルでLTをします。 どういう内容かは紹介文を読んでいただきつつ、先月行…
WWDC19でお目見えしたXcode 11ですが、ライブラリ・フレームワークの配布形態として .xcframework という新しいフォーマットが導入されています。 https://developer.apple.com/documentation/xcode_release_notes/xcode_11_beta_release_notes/#3318305 XCF…
先日リリースされたCocoaPods 1.7.0.beta.1で、実験的機能としてSpecsのソース(パッケージ定義であるpodspecファイルのセントラルリポジトリ)にCDNを利用できるようになりました。 CocoaPods 1.7.0 Beta! - CocoaPods Blog 今までは、ソースとして https:/…
既存iOSアプリへのReact Native導入は公式にドキュメントが用意されている Integration with Existing Apps · React Native その手順に従うと、React Nativeの依存解決にはCocoaPodsを使うようになっている 一方 react-native init で新規にプロジェクトを作…
技術書クラウドファンディングのPEAKSのプロジェクトとして成立した『iOS 11 Programming』に、執筆陣の一人として参加させていただき、先日完成を迎えることができました。また本日からクラウドファンディング参加者に限らない一般販売が開始されました。 i…
普段は京都や大阪で開催されている関モバが東京に上陸した!ということで発表してきました。 UISearchBar / UISearchController は結構カスタマイズしにくかったり、iOS 10とiOS 11で見た目が大きく変わり得たり、iOS 11で追加された UINavigationItem.searc…
前回のエントリーに引き続き、Carthage 0.13 および 0.14をリリースしていました。どちらもバグFixメインのリリースですが、0.13ではcarthage other-commandとすると$PATHに存在するcarthage-other-commandを実行するという、いわゆるサブコマンドの機構を実…
昨年のエントリーに書いたように、Carthageのコミッターをしているid:ikesyoです。もう3日前になりますが、最新バージョンの 0.12: All Your Frameworks Are Belong To Usがリリースされました! 今回のリリースで大きなトピックだと個人的に思う以下の3つを…
2015年も残すところあと数時間。aikoの年越しライブ Love Like Pop 18に向かっている途中/開演待ちに書いています。 色んなところで振り返りエントリーが流れているので、自分も振り返ってみようかと書いてみます。 フリュー 昨年10月から業務委託としてフリ…
毎月恒例の関西モバイルアプリ研究会 #5で今回も発表させていただきました。会場とに軽食を提供してくださるはてなさんに多謝 今回の資料はこちら。 Carthageについて知りたいn個のこと from Syo Ikeda CocoaPodsと並ぶ依存性管理ツールとして普及が進みつ…
第1回から参加させていただいている関西モバイルアプリ研究会 #4でLTをしてきました。なんだかんだでGoogle I/O ・ WWDC 特別会だった#3以外の3回全てで発表できていて嬉しい限りです! 以下が発表スライドです。 iOSでのFramework導入のおさらい #関モバ fr…
先月の2015年6月に、CarthageというCocoaプラットフォーム(iOS/OS X/watchOS)用の依存性管理ツールのコミッター(Collaborator)になりました。 このプロジェクトは元々ReactiveCocoa 3.0のAPIを洗練させるためのショーケースとして始まったという側面もあり、…
今日色々とやり取りをしながら、Swiftでのジェネリックなメソッドについてある知見を得たのでまとめておきます。 @_ishkawa @akisutesama gistにコメントしたんですが、型自体をT.Typeとしてパラメータで渡させるのはどうですか— Syo Ikeda / いけしょー (@i…
非常に基本的なことですが、あまりはっきりと触れられていない(触れる必要がない?)のが、単純に固定値をラップしたシグナルを生成するケースです。方法自体は単純で、以下のようなメソッドが用意されています。 // 値の場合 RACSignal *singleValueSignal…
タイトルのままですが ikesyo/ReactiveAccountStore というAccounts.framework (ACAccountStore) のReactiveCocoaラッパーを作ってみました。 現時点では、以下の4つの非同期メソッドのRACSignalラップ版をサポートしています。 -requestAccessToAccountsWit…
Pull requestしたらローカライズ依頼された - [yashigani days] などで知ったVTAcknowledgementsViewControllerというライブラリがあります。CocoaPodsが自動生成してくれる各ライブラリのライセンス表記をまとめたファイルをうまいことアプリ内で画面表示し…
UrbanApps/UAObfuscatedString NSLog(@"%@", @"".T.h.i.s._.i.s._.a._.t.e.s.t.dot); > This is a test. NSString *identifier = @"".c.o.m.dot.u.r.b.a.n.a.p.p.s.dot.e.x.a.m.p.l.e; サンプルを見れば分かるように、NSStringのカテゴリーとして英数字や記…
iOS Advent Calendar 2013 14日目担当の @ikesyo です。 Function Reactive Programming Framework - Reactive Cocoa | Cocoaの日々情報局 iOS - ReactiveCocoaについて - Qiita [キータ] ReactiveCocoaのまとめ資料 - Qiita [キータ] Objective-C - Reactiv…
ReactiveCocoaのドキュメントにもあるように、-do...系のメソッドを使用すると、シグナルを購読せずに副作用を挟み込むことができます。 RACSignal *newSignal = [[[signal doNext:^(id x) { NSLog(@"next"); }] doError:^(NSError *error) { NSLog(@"error"…
元ネタ: ios - Perform action on the hour, every hour, with ReactiveCocoa - Stack Overflow 現在時刻から1時間毎だと毎時0分とならないので、まずは次の時までの分を得ておきます。 NSDateComponents *components = [[[NSCalendar sharedCalendar] calen…
元ネタ: Command which sends alternating YES/NO values · Issue #767 · ReactiveCocoa/ReactiveCocoa ボタン・ジェスチャーなどのUI操作とRACSignalを仲介するクラスとしてRACCommandがあります。これを用いて、状態(フラグとなるインスタンス変数/プロパ…
元ネタ: How to obtain KVO old value using ReactiveCocoa 2.0 API? · Issue #762 · ReactiveCocoa/ReactiveCocoa KVOのオプションを使用する場合 ReactiveCocoaではRACObserve()マクロによってKVOを非常に簡単に扱うことができますが、それだけでは、通常…
元ネタ: Best practice for signals that capture completed/error operations · Issue #653 · ReactiveCocoa/ReactiveCocoa ログインやデータの永続化など、特に next として送る値がないシグナルの結果を -[NSObject rac_liftSelector:withSignals:] や RA…