The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

2019-01-01から1年間の記事一覧

2019振り返り

2019年の振り返りです。 仕事 去年の5月からコネヒトに出向していましたが、今年の5月にSupershipからコネヒトに転籍となりました。 アウトプット まだちゃんとつくりきってはいないんですが、変更のあったファイルにのみlintとかformatterを適用するSwiftの…

iOS開発の年末大掃除

この記事はこの記事はコネヒト Advent Calendar 2019 18日目の記事です。 開発を重ねるとプロジェクト内についつい使っていないコードやリソースが残ってしまったり、開発環境にゴミが残ったりします。 今回はそれらの掃除に役立つツールを紹介します。 使っ…

peripheryの特定ブランチをビルドしてつかう

Swiftの使ってないコードを消すperipheryとツールがありますが、 Xcode11の対応版がまだマージされていなくて使えません。 xcode11というブランチがあってそれを使うと一応使うことができます。ただビルドしないといけないのでそのビルド方法です。 peripher…

MacBook Proの電源アダプタ

MBPを会社と家で使っている場合に、ただでさえMBPが重いのに電源アダプタまで持ち帰りたくないですよね。 ですが、純正の電源アダプタ(85W)を買うと8000円もするわけです・・ そこで色々探してよさげだったのがAnker PowerPort Speed PD 60です。 出力は60W…

SwiftUIのViewで条件によってViewを出し分ける方法

potatotips #64でLTした内容です。 SwiftUIのViewで条件によってViewをだしわけたいことがたまにあるかと思います。 SwiftUIでこのように条件によってViewを出し分けるようなコードを書いてみます。 var body: some View { if imageName.isEmpty { return Te…

アプリのDark ModeをOFFにする

既存のアプリでいきなりダークモードに対応するのは大変です。 しかしXcode11でビルドするとデフォルトでダークモードが適用されてしまいます。 もちろんダークモードをOFFにすることは可能となっています。 アプリ全体でダークモードをOFFにする方法 Info.p…

Nimbleでtupleの比較

Nimbleでtupleをequal()で比較してもコンパイルに通りません。 let tuple = (1, 2) expect(tuple).to(equal((1, 2))) 原因 これはtupleがEquatableではないからです 対策 これはどうしようもないので以下のようにequalを使わずに回避するしかなさそうです ex…

ERROR ITMS-90784

2019/6/28ころから急にAppStoreConnectにipaをアップロードするときに以下のエラーがでるようになった ERROR ITMS-90784: "Missing bundle name. The Info.plist key CFBundleName is missing or has an empty value in the bundle with bundle identifier '…

flutter doctorのエラーの解決方法 Verify that all connected devices have been paired with this computer in Xcode

このようなエラーがでてbrew xxxをしても解決しない場合 [!] iOS toolchain - develop for iOS devices (Xcode 10.2.1) ✗ Verify that all connected devices have been paired with this computer in Xcode. If all devices have been paired, libimobilede…

@propertyDelegateと@propertyWrapperの違い

2019/06/25 現在の情報 Swift EvolutionのProperty Wrappersを見ると@propertyWrapper ですが、 AppleのドキュメントのStateを見ると @propertyDelegateになっています。 state 原因 仕様策定段階で名前が変わった 詳細 ここに書いてあるように最初はpropert…

6.5インチ用のスクリーンショットの必須化

2019年3月27日からは6.5インチ用のスクリーンショットも必須になったようで、AppStoreConnectで申請時に設定しないと審査に出すときにエラーになるようになっていました。 iOS 12.2 SDKを含むXcode 10.2にアップデートして、Appをビルドしてください。2019年…

DispatchQueue.main.asyncAfter(deadline: .now() + 1.0)はなぜnanosecondではなくsecondになるか

あんまり気にしてる人はいないかもしれないですが、普段何も考えずに DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) を使っているとdeadline: DispatchTime はsecond単位っぽく感じるかもしれないですが、nanosecondです。 DispatchTime DispatchT…