Corredor

ウェブ、プログラミングの勉強メモ。

Swift

iPhone 11 Pro Max 向け iOS アプリでホームバーを常に非表示にする

iPhoneX 以降はホームボタンがなくなり、代わりに画面下部にホームバー Home Indicator と呼ばれるバーが表示されるようになった。 コレを普段非表示にするには、ViewController.swift に以下のようなコードを入れれば良い。 override func prefersHomeIndic…

iPhone 11 に搭載された超広角レンズを使って AVFoundation で撮影する方法

環境情報 Xcode v11.0 (11A420a) iPhone 11 Pro Max : iOS 13.0 Swift 4 プロジェクト 実装方法 ベースとなる AVFoundation のコードは以下のプロジェクトなどを参照。 github.com 以下は動画撮影の例だが、コレまで以下のようにカメラを起動していたところ…

iOS 13 AVCaptureMultiCamSession を使った複数カメラでの同時ビデオ録画 iPhone アプリを作った

iOS 13 から登場した AVCaptureMultiCamSession という API を使うと、1台の iPhone に搭載されている複数のカメラデバイスを同時に使用できる。例えば、バックの標準カメラで被写体を写しながら、フロントカメラで撮影者自身も同時に撮影したり、といった感…

撮影した動画ファイルを iOS アプリ内に保存し、任意のタイミングでフォトライブラリに書き出す Swift コード

以前、スーパースロー動画を撮るための Swift コードを紹介した。 neos21.hatenablog.com この時は AVCaptureSession#startRunning() までで、実際の動画の撮影については触れていなかった。そこで今回は、このコードを利用した動画撮影のコードを掲載してお…

iOS アプリにバッジを付与する Swift コード

iOS アプリにバッジを付与する。よくあるネタなのだが、iOS や Swift の進化により、ググっても情報の鮮度が様々で分かりづらかったので、本稿執筆時点でのやり方を紹介する。 検証環境 いきなりコード 参考文献 検証環境 macOS Mojave Xcode v10.1 Swift v4…

iOS アプリのプロビジョニングプロファイルの有効期限をアプリ内で取得・表示する Swift コード

無料の Apple Developers Program アカウントを使っている場合、iOS にインストールした開発用アプリの有効期限は7日間で切れてしまう。 neos21.hatenablog.com この有効期限までの残日数を、アプリ内で取得・表示させられないか調べてみた。 検証環境 macOS…

iPhone6Plus では 120fps の AVFrameRateRange が取得できなかった

以前、iOS アプリで 120fps とか 240fps とかの動画を撮るためのコードを紹介した。 neos21.hatenablog.com このコード、手持ちの iPhone7Plus と iPhoneSE では上手く動いて 120fps のモードが (iPhone7Plus では 240fps のモードも) 選べて録画できていた…

Xcode で Swift アプリが突然うまくビルドできなくなったら

Swift で実装した iOS アプリを Xcode で入れ直そうとしたら、急に以下のようなエラーが出るようになった。エラーが出るようになった前後で日をまたいだだけで、コード自体は変更していなかったのに、だ。 dyld: Library not loaded: @rpath/libswiftAVFound…

Swift iOS アプリで一定時間後に処理をする

Swift にて、JavaScript における setTimeout() 的なことをやる方法。 環境情報 対象 iOS バージョン:v11.3 Xcode:v9.3 (9E145) Swift:v4.1 (swiftlang-902.0.48 clang-902.0.37.1) 処理を遅らせるには DispatchQueue.ayncAfter() 任意の処理を遅らせて実…

Swift iOS アプリで別スレッドで非同期処理を行う

環境情報 対象 iOS バージョン:v11.3 Xcode:v9.3 (9E145) Swift:v4.1 (swiftlang-902.0.48 clang-902.0.37.1) Swift で AVCaptureSession を扱う時とかに、AVCaptureSession.startRunning() の処理が重たいと感じたことがあるかもしれない。 そんな時は、…

Swift iOS アプリで UserDefaults を使ってデータを保存したり読み込んだりする

アプリを開発していて、「最後に選択していた UITabBarItem がどれだったか」といった情報を記録していて、アプリを再起動した時もその情報を参照したくなった。 そこで、アプリ内にちょっとしたデータを保存できる UserDefaults という機能を使って、任意の…

Swift iOS アプリでスプラッシュスクリーンを使わないようにしたり・View Controller の背景色を変えたり

Swift 製の iOS アプリでスプラッシュスクリーンの設定をしたり、スプラッシュスクリーンを使わないようにしたりする方法。その中で、View Controller 全体の背景色の変更方法も紹介。 環境情報 スプラッシュスクリーンの設定 スプラッシュスクリーンをなく…

Swift で Optional な String を Int に変換したい

Swift で Optional な String を Int に変換して利用したかったのだが、すんなりと型変換できなくて調べたのでメモ。 環境情報 書き方 環境情報 対象 iOS バージョン:v11.3 Xcode:v9.3 (9E145) Swift:v4.1 (swiftlang-902.0.48 clang-902.0.37.1) 書き方 …

Swift iOS アプリで Storyboard を使った UITabBar の制御

Storyboard を使って UITabBar を配置し、タブバーのボタンごとに処理をさせてみた。 環境情報 Storyboard で UITabBar を配置する Tab Bar Item を編集する Tab Bar Item ごとに処理を振り分ける 環境情報 対象 iOS バージョン:v11.3 Xcode:v9.3 (9E145) …

Swift iOS アプリでバックグラウンド移行時や復帰時のイベントで任意の処理を行う

iOS アプリでよくある、 バックグラウンド移行時に何か処理をする フォアグラウンド復帰時に何か処理をする を実現する方法のまとめ。 環境情報 用意されているイベントの種類 アプリ全体でイベント定義するには AppDelegate.swift を使う ViewController 内…

Swift iOS アプリで画面の明るさを取得・変更する

Swift 4・iOS 11 で画面の明るさを取得したり、変更したりする方法。 環境情報 明るさの取得方法 明るさの変更方法 環境情報 対象 iOS バージョン:v11.3 Xcode:v9.3 (9E145) Swift:v4.1 (swiftlang-902.0.48 clang-902.0.37.1) 明るさの取得方法 明るさを…

Swift iOS アプリでステータスバーを非表示にする

Swift iOS アプリでステータスバーを非表示にするための設定まとめ。 環境情報 対象 iOS バージョン:v11.3 Xcode:v9.3 (9E145) Swift:v4.1 (swiftlang-902.0.48 clang-902.0.37.1) 起動時にステータスバーを非表示にする Xcode プロジェクトを開き、「Gen…

変数宣言の「let」は数学の基本英語

JavaScript (ES2015) や Swift などの言語で、変数宣言に let という単語を使うが、コレはどこから来てるのかな?と思い調べてみた。 数学の教科書では、定義や説明の冒頭で、 「x を 3とせよ。そうすると。。。」という表現をするときがあるが、 「x を 3 …

iOS アプリで 120fps・240fps のスローモーション動画を撮るための Swift 4 実装

ふと「iOS のカメラアプリでスローモーションが撮れるヤツって極端に少ないな?」と思い、Swift での実装の仕方を調べてみた。 iOS アプリにおけるスローモーション動画撮影に関して解説されている日本語文献は、以下の @shu223 さんの文献ぐらいしか見当た…

Swift で iOS アプリを開発するチュートリアルをやってみる

これまで Cordova を利用したハイブリッドアプリとしての iOS アプリは開発してきたが、Objective-C や Swift を書いて iOS アプリを作ったことがなかった。 そこで、Swift を使った iOS アプリ開発の初歩の初歩をやってみようと思う。 ベースとなる記事は以…

Xcode と Swift のバージョンの確認方法

iOS アプリ開発で使用する Swift 言語。バージョンアップにより破壊的な変更が目立つので、使用している Swift のバージョンは確認しておきたい。 Swift は MacOS 端末にインストールしている Xcode 内に含まれている。コマンドラインから以下のように叩いて…