2023年の振り返りです。 仕事 今年もプレイングマネージャーとして一年過ごしました EMとして10人弱見輝感じです アウトプット 会社ブログ tech.connehito.com tech.connehito.com プライベート 超がんばってiPhoneアプリをリリースしました。星5お願いしま…
この記事はコネヒトアドベントカレンダー22日目の記事です。 adventar.org スクラムガイド輪読会をこれまで社内で何度となくやってきて、スクラムガイドを読み進める上で各章のポイントや捕捉していることについてまとめてみました。 スクラムガイドを読んで…
個人開発で2023年5月末にiOSアプリをリリースしました! 英語日記でシャドーイングする英語勉強アプリphrasieYasuharu Yanamura教育無料apps.apple.com 有料アプリなので課金はしなくてもよいですが(してもいいですよ!)、星5をなにとぞお願いします!!!…
前回の記事でUIViewControllerとMainActorのことについてかきました。UIViewControllerはMainActorなのでMainスレッドで実行されることは保証されていて安心!かと思いきやそうでもなかったのです。 以下のMainActorであるViewModelをMainActorではないクラ…
SwiftConcurrencyでは普通actorのメソッドを呼んだりするときはawaitしなければならないですが、UIViewControllerからMainActorのメソッドを呼ぶときはawaitせずに普通に呼べてしまいます。 これはなぜかというとUIViewControllerもMainActorだからです。 UI…
※ iOS16でのやり方です モーダルの非表示 説明の都合上、先に非表示(モーダルを閉じるとき)についてです。 モーダルを閉じる場合はこのようにEnvironmentのdismissを使って画面を閉じます。 // モーダルで表示する画面 struct ModalContents: View { @Envi…
2022年の振り返りです。 年末に下の子が胃腸炎になりその後家族全滅する事態となり正月過ぎての振り返りとなってしまいました・・ 仕事 今年もプレイングマネージャーとして一年過ごしました。 アウトプット 会社ブログ ちょっと油断していたところだいぶ世…
GitHub Actionsは実行に成功していても、密かにwarningが出ていたりするので、GitHub Actionsを自作している人は気をつけましょう、将来的に急に動かなくなります。 わたしの自作のGitHub Actionsでは以下のようなwarningが出ていました。 The `set-output` …
Xcode CloudがXcode 13.4.1から使えるようになったので試してみました。 Xcodeの左のナビゲーションの一番右の Report navigator もcloudタブからワークフローを作ることができるようになっています。 ここからXcode上でポチポチしていくだけで、ワークフロ…
543. Diameter of Binary Tree 2分木の直径(左右ノードが最長となるときの長さ)を求める問題です。 この問題はノードの高さを求めるアルゴリズムを知ってる前提だと確かに簡単なのですが、知らないとそこから考えないといけないのでちょっと大変です。 前…
Swift Concurrencyは並列プログラミングの書きやすさや便利さがよくなっただけでなくパフォーマンスも改善されています。 これまでの問題 これまでのGCDを使った並列処理では、CPU Coreに対して一つスレッドを割り当てそれをスレッドプールにプールして再利…
UIKitのViewをSwiftUIとして使うには、UIViewRepresentableを使います。 そしてUIKitのViewのdelegateやtarget actionをハンドリングしたい場合structではハンドリングできないので、Coordinatorという仕組みが用意されています。 makeCoordinator()がmakeUI…
SwiftでActorsが導入され、actorを使えば簡単にスレッドセーフにすることができるようになりました。 ただこれでrace conditionやdead lockといった並行プログラミングにおける問題が解決されるわけではありません。 Actor reentrancy SwiftのActors(正確に…
2021年の振り返りです。 仕事 プレイングマネージャとして一年過ごしました。 SwiftUIを使い始めました アウトプット コネヒトの開発者ブログを書いたり tech.connehito.com tech.connehito.com tech.connehito.com アドベントカレンダーを書いたりしました…
これはiOSアドベントカレンダー2021その3の25日目の記事です! SwiftUIのViewに対応するUIKitの参照をとってくるSwiftUI-Introspectという謎ライブラリがあります。 なんのことを言っているのかわからないと思うので例をあげると、SwiftUI-Introspectを使う…
これはコネヒトアドベントカレンダー2021の20日目の記事です。 これまでずっとエンジニアとしてやってきましたが、昨年の9月からマネージャーとしてのロールもやることになりました。(マネージャーとしておまえなにやるのよという点についてはこちらにしたた…
2020年の振り返りです。 仕事 今年はずっとiOSエンジニアの採用を頑張ってました。 マネジメントの役割もやりはじめました。 アウトプット GitHub Actionsをいくつか作って公開しました GitHub - yanamura/ios-bump-version GitHub - yanamura/git-flow-merg…
こちらはコネヒトアドベントカレンダー2020 23日目の記事です。 普段はSwiftでiOSアプリを開発しているわたしがFlutterを入門するのにつかったものなどを紹介します。 Dartについて Dart Language Tour(https://dart.dev/guides/language/language-tour)を読…
iOSアプリのreleaseビルドを行った際にlinkerでinvalid bitcode versionで怒られることがあります。 ld: could not reparse object file in bitcode bundle: 'Invalid bitcode version (Producer: '1103.0.32.62.0_0' Reader: '1100.0.33.17_0')', using lib…
npm i -g npm-check-updatesを入れておくと便利 npm-check-updatesをインストール $ npm i -g npm-check-updates 特定のパッケージを最新にする $ncu -u styled-components これを実行するとpackage.jsonが更新される --- a/package.json +++ b/package.json…
2019年の振り返りです。 仕事 去年の5月からコネヒトに出向していましたが、今年の5月にSupershipからコネヒトに転籍となりました。 アウトプット まだちゃんとつくりきってはいないんですが、変更のあったファイルにのみlintとかformatterを適用するSwiftの…
この記事はこの記事はコネヒト Advent Calendar 2019 18日目の記事です。 開発を重ねるとプロジェクト内についつい使っていないコードやリソースが残ってしまったり、開発環境にゴミが残ったりします。 今回はそれらの掃除に役立つツールを紹介します。 使っ…
Swiftの使ってないコードを消すperipheryとツールがありますが、 Xcode11の対応版がまだマージされていなくて使えません。 xcode11というブランチがあってそれを使うと一応使うことができます。ただビルドしないといけないのでそのビルド方法です。 peripher…
MBPを会社と家で使っている場合に、ただでさえMBPが重いのに電源アダプタまで持ち帰りたくないですよね。 ですが、純正の電源アダプタ(85W)を買うと8000円もするわけです・・ そこで色々探してよさげだったのがAnker PowerPort Speed PD 60です。 出力は60W…
potatotips #64でLTした内容です。 SwiftUIのViewで条件によってViewをだしわけたいことがたまにあるかと思います。 SwiftUIでこのように条件によってViewを出し分けるようなコードを書いてみます。 var body: some View { if imageName.isEmpty { return Te…
既存のアプリでいきなりダークモードに対応するのは大変です。 しかしXcode11でビルドするとデフォルトでダークモードが適用されてしまいます。 もちろんダークモードをOFFにすることは可能となっています。 アプリ全体でダークモードをOFFにする方法 Info.p…
Nimbleでtupleをequal()で比較してもコンパイルに通りません。 let tuple = (1, 2) expect(tuple).to(equal((1, 2))) 原因 これはtupleがEquatableではないからです 対策 これはどうしようもないので以下のようにequalを使わずに回避するしかなさそうです ex…
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 '…
このようなエラーがでて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…
2019/06/25 現在の情報 Swift EvolutionのProperty Wrappersを見ると@propertyWrapper ですが、 AppleのドキュメントのStateを見ると @propertyDelegateになっています。 state 原因 仕様策定段階で名前が変わった 詳細 ここに書いてあるように最初はpropert…