くま's Tech系Blog

基本的には技術で学んだことを書き留めようと思います。雑談もやるかもね!

iOS

Closuresのドキュメントを見る前に

Swiftのクロージャーについてですが、クロージャを細かく説明するわけではありません。 Swiftのクロージャーの公式ドキュメントを見ると単純に和訳するだけでは理解するのが難しい用語があります(個人的にかもしれませんが・・・) docs.swift.org 今回はドキ…

iOSにおける同期・非同期処理について

今回はモバイル開発で欠かせない同期・非同期処理の概念についてです 最初の方の概念の説明はAndroidも共通している内容ですが、後半はiOSに特化した内容になります Androidの同期・非同期処理はこの前、技術書典で出版した本で軽く説明しているので気になる…

TableViewCellの再利用について

あるときこんなレビュー指摘がありました。 「CellのViewをhiddenにしているけど、ずっとhiddenになったままでいいの?再利用されるときに想定外の場合になる可能性があるよ」 最初、??と思ったのですが、そのときにTableViewCellは再利用されていることを…

CompositionalLayoutsを使ってみる

今回はCompositionalLayoutsについてです CompositionalLayoutsはiOS13から登場したCollectionViewのレイアウト構築方法です これまではUICollectionViewFlowLayoutクラスを使用していましたが、次のような課題がありました Boilerplate code: ボイラープレ…

iOSの証明書について

今回はiOSで使用する証明書についてです アプリをビルドしたり、リリースしたりする際に証明書関連の対応手順は理解していても、それぞれどんなことをしているのかがあまり理解できていなかったので、調べてまとめます まずは全体像を下記に載せます ビルド…

PencilKitを使ってみる

今回はPencilKitについてです PencilKitとはApple Pencilやユーザーの指からの入力を受け取り、iPadOS、iOS、macOSで表示する画像に変換するiOSアプリケーション用の描画できるSDKです PencilKitには、線を作成したり、消したり、選択したりするツールが付属…

frameとboundsの違いについて

今回はViewの配置やサイズ指定で使うframeとboundsについて違いを調べていこうと思います 違いを知らずに表示の不具合を起こす可能性があるので要注意です(まさに自分が体験しました...) frameについて 公式ドキュメントにあるように親Viewから見た相対的な…

UIのインスタンス化について

Xcodeには、Interface Builderでコードを書かずにデザインを構築することが多いと思います Auto Layoutも比較的付けやすいので、使ったことがない人はいないくらい使われると思っています 今回は、Interface Builderとソースコードを紐付ける方法をまとめま…

iOSDC Japan 2021 に参加した

iOS

iOSDC Japan 2021 に参加してきたので、ブログにしようと思います iosdc.jp iOSDC Japanとは? iOSDC Japan 2021はiOS関連技術をコアのテーマとしたソフトウェア技術者のためのオンラインカンファレンスです。 日本中、世界中から公募された100本を超える知…

Callkitで着信画面を表示させる

今回はCallkitについてです Callkitは下記のようなiPhone標準の着信画面を表示させる機能です。画面がOFFの状態であれば、スライドして応答する画面が表示されます。また、着信履歴にもデータが残ります SkypeやLINEなどで電話をかけたときに、着信時に同じ…

UIViewのレイアウトライフサイクルについて

今回はUIViewの表示についてまとめようと思います。 AutoLayoutが効かない・Viewの表示位置がおかしい・表示されない・画面表示までが遅いことが実装している中で1度は経験はあると思います。 このような問題は、Viewの表示の流れを理解せずに開発しているこ…

ライブラリをforkして使う

今回はライブラリをforkして使う方法です。 あまり使うことはないと思いますが、使いたいライブラリが更新されずに機能を追加したいけどできない場合に一部カスタマイズして使うために使ったりします。 まずは使いたいライブラリを下記をタップして、forkし…

iOSアプリのビルドのターゲット分けを行う

今回はiOSアプリのビルドのターゲット分けについて記載しようと思います。 例えば、開発環境と本番環境で処置を分けたい場合やAPIのURLを分けたい場合があると思います。 そんなときに1つのプロジェクトで複数の環境を管理するためにターゲット分けを行いま…

プッシュ通知の許可状況を確認する

今回は小ネタです プッシュ通知を許可しているかどうか知りたいときありませんか? そんなときに許可状況を確認するための実装です if UIApplication.shared.isRegisteredForRemoteNotifications { print("許可している") } else { print("許可していない") }…

プッシュ通知を処理する

今回はプッシュ通知についてです プッシュ通知はローカル通知とリモート通知がありますが、今回はリモート通知についてです 簡単にローカル通知とリモート通知の違いを説明すると、ローカル通知はアプリ単体でアプリがフォアグラウンド以外なら通知が表示さ…

UITabBarControllerについて

iOSの開発では必須といっていいくらいUITabBarControllerは使うと思います 今回はそんなUITabBarControllerについて記載しようと思います UITabBarControllerはstoryboardで作成する方法とコードで実装する方法があるので両方説明しようと思います。(個人的…

UITableViewでカスタマイズヘッダーを使う

しばらく更新していないうちに年を越してしまいました。。。。。 これからはなるべく更新していく予定です 今年初の記事はUITableViewでカスタマイズヘッダーを使う方法です UITableViewではstoryboardで作成することができるのですが、下記のようにヘッダー…

Xcodeのショートカット集

今回はXcodeのショートカットをまとめようかと思います。 なぜ、この記事を書こうかと思ったのかというと、ショートカットを使うことで開発が効率的に進められることを体感したからです。 最近、ペアプロを体験して、相手の開発をみる機会がありました。 そ…

忘れやすいiOSの証明書関連を思い出す

iOS

PCを変更したことでせっかくなので、証明書を作り直してみました 意外に忘れてしまっていたので(年に1回くらいなので)、メモのために今回記事を書きます ①証明書生成 まずは、証明書生成を行います Macのアプリケーション→ユーティリティ→キーチェーンアクセ…

SwiftUIで画像にいろいろ手を加えてみる

以前、SwiftUIでテキストを配置したり色を変更したりしました 今回は画像にいろいろ手を加えるというのをSwiftUIで試してみたいと思います まずはリソース(画像)を追加します 画像の追加 この画像を表示させるためにはImageの引数に画像のリソース名を指定す…

iOSのQRコード読み取りについて

今回はiOSでQRコードを読み取る処理について書こうかと思います 使用バージョンは以下の通りです Swift 5.0 カメラ起動 QRコードを読み取る処理で最初にやることと言えば、カメラ起動です まずは、カメラ起動の流れを見ていきましょう カメラに起動にはAVFou…

extensionとprotocolについて

今回はiOSでよく使うextensionとprotocolについて記載しようと思います extensionについて Swiftでは既存のStringやArrayなど提供されているクラス(既存のクラス)に自分専用のメソッドを追加できます。 Objective-Cにはカテゴリという、既存クラスにメソッド…

複数バージョンのXcodeを使う

iOS

最近iOSのバージョンアップのためにXcodeを使うので、複数バージョンを共存させる方法をまとめたいと思います。 Xcodeをダウンロードする ここから使用するバージョンのxcodeをダウンロードします。 ダウンロードが完了すると、展開したXcodeアプリがApplica…

iOS開発での小ネタ

iOS

iOS開発で今まで、個人でやっていたので知らなかったことが多かったですが、小ネタを知ることができたので、記憶と記録に残そうかと思います(笑) ①Xcodeのダウンロード Xcodeをダウンロードする時にMacでしかできない→ということはApple Storeからダウンロー…