目次
- 0.1. [Flutter] CodeMagic で自動で build_number を更新できない時の対処法。build number が更新されない。 –build-number=$(($BUILD_NUMBER))
- 0.2. SwiftでMoyaを使う
- 0.3. [Swift]CLLocationManagerDelegateをDataStoreへ格納してみた
- 0.4. スマホを振って、ピア通信で友だちとプロフィールを交換する【MultipeerConnectivity】【iOS】
- 0.5. iOSで発話認識する最小構成
- 0.6. [Unity][iOS] UnityCloudBuild を使って TestFlight にアップロードするお話。
- 0.7. 【Flutter】コールバックを自分なりにまとめました。
- 0.8. For loop の処理が全て終わってから次の処理をする
- 0.9. Xcode13でInfo.Plistがない。どこ?
- 0.10. 【Flutter】プラグインでiOSのrootViewControllerを取得する方法
- 0.11. Flutter : TextFormFieldでUIを描画できない
- 0.12. Xcode のSimulator に旧iOS のイメージを追加する[Big Sur]
- 1. 前提
- 2. 結論
- 2.1. iOS15.1をXcodeでビルドしたい時にUnsupprted OS versionになってしまうのを回避するやり方
- 2.2. nibを用いて、TableViewを作成(初学者向け、Delegateの説明なし、コード説明あり)
- 2.3. 【Flutter】プラグイン作成時にiOSローカルのライブラリを参照する方法
- 2.4. Unity2019でAdmob実装時にクラッシュして表示されないときの対処法
- 2.5. AppStore リジェクト「Safety – Physical Harm: COVID-19 の対策について触れてるけど情報ソースがないよ」の対処
- 2.6. UITextView上の任意のテキストに対してカスタムContextMenuを提供する
- 2.7. iOSアプリ開発に便利なライブラリ
- 2.8. 【Flutter】Statefullなカウンターアプリをhooks_riverpod+state_notifier+freezedでリファクタリングする
[Flutter] CodeMagic で自動で build_number を更新できない時の対処法。build number が更新されない。 –build-number=$(($BUILD_NUMBER))
https://kaedeee.com/flutter-codemagic-build_number/ CodemagicでFlutterを利用する際に、Github にデプロイ後、自動でbuild numberを更新するように設定したにも関わらず、iOSで自動更新が反映されませんでした。 対応を以下に示します。 #対処法 ##Codemagicの設定を見直す。 build > build arguments を –build-number=$(($BUILD_NUMBER)) と設定する。 ![スクリーンショット 2021-11-12 17.49.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/24fd56ef-c082-f3d8-b787-83342dcb7035.png) ##Xcodeの設定を見直す。 Xcode > Info.plist より、 key CFBundleShortVersionString key CFBundleVersion 部分の
SwiftでMoyaを使う
Moyaを使用して簡単な参考ソースコードを作成します。 今回は下記URLのAPIを例として使用しました。 https://www.themoviedb.org/ 人気映画、映画の詳細、検索などが利用できるAPIです。 # Moyaとは Moyaはネットワーク抽象化レイヤーです。 MoyaはAlamofireを使用しており、ネットワークマネージャーを素早くセットアップできます。 必要な依存関係を追加することで、プロジェクトでMoyaを使用することができます。 プロジェクトをインストールする方法はいくつかあり、下記リンクにインストールに関する詳細が入手できます。 https://github.com/Moya/Moya#installation # API Moyaをインストールしたら、まずAPI.swiftファイルを作成し、さまざまなリクエストをもつ列挙型(enum)を作成します。 API列挙型をMoyaのTargetTypeで拡張し、必要な変数に準拠する必要があります。 baseURL, path, sampleData, taskやheaderなどです。 “` import
[Swift]CLLocationManagerDelegateをDataStoreへ格納してみた
## 投稿の経緯 iOSアプリ開発でFat ViewControllerはよく知られたアンチパターンです。特にTableViewDelegateやCLLocationManagerDelegateなどのDelegateメソッドをViewControllerに書くことでFatになる印象です。 今回はそんなFat ViewControllerを回避するため、CLLocationManagerDelegateをDataStoreへ格納してみようと思います。 [GitHub Repositoryはコチラ](https://github.com/ken-sasaki-222/LocationManagerInDataStore) ## 環境 Swift 5.5 Xcode 13.1 ## UIの使用 – 初回ボタンタップで位置情報アラート表示(`requestWhenInUse`) ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643372/dfb22798-d21a-69bf-4455-e9
スマホを振って、ピア通信で友だちとプロフィールを交換する【MultipeerConnectivity】【iOS】
**サーバーなしでデバイスだけで直接で通信できます。** #ピア通信に必要な最小手順 ### この手順で他のデバイスとデータの送受信ができます。 ###1、Local Network (Bonjour services)をアプリに追加 Info.plistにLocal Network Usage DescriprtionとBonjour servicesを追加します。 ![スクリーンショット 2021-05-27 4.04.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/6102bd5b-c67d-df37-c7db-e2481808d4f0.png) Info.plist のBonjour services に自分のサービ
iOSで発話認識する最小構成
#iPhoneで発話認識するの手順 ユーザーの発話内容を認識する最小構成です。 本記事のコードをベタ貼りしていけば音声取得してテキストにするまでができます。 [**【参考画像:音声認識を用いたサンプルアプリ(RealityKit-Sampler)】**](https://qiita.com/john-rocky/items/48f95f814b12dd7c853d) [ ](https://qiita.com/john-rocky/items/48f95f814b12dd7c853
[Unity][iOS] UnityCloudBuild を使って TestFlight にアップロードするお話。
#自分の環境 Unity 2019.4.31 Windows10 (Macでもあまり関係なく使えるはずだけど) #前提条件 ・iPhone/Androidアプリを開発している。 ・UnityCloudBuildを使っている。 **・Build後ipaファイルを落として手動でAppstoreにあげている。** #解決しなくてはいけない事 ・出来上がったipaファイルの場所は? ・それをUnityloudbuildからiOS Devにアップロードする方法あるの? → ありました。 #実装 ## 1.Bashファイルを以下の場所に用意 “`Assets\Editor\post-build-push-ipa-appstore.bash #!/bin/bash echo “Uploading IPA to Appstore Connect…” #Path is “/BUILD_PATH/. . /.build/last/ /build.ipa” path=”$WORKSPACE
【Flutter】コールバックを自分なりにまとめました。
# はじめに iOSメインのスマホアプリエンジニアです。 iOSエンジニア視点からFlutterのコールバックの利用タイミングなどを自分なりにまとめました。 Dartの文化に反していたり、好みや等があるかもしれませんがご了承ください。 その他ご意見ございましたらご指摘ください。 # VoidCallback 最もシンプルで`Flutter callback`と検索すると真っ先に引っかかるコールバック方法です。 その名の通り、「空っぽのコールバック」 https://api.flutter.dev/flutter/dart-ui/VoidCallback.html ### 宣言 VoidCallbackを受ける側の実装。 “` voidCallback = (){ print(“voidCallback”); }; “` ### 呼び出し VoidCallbackを呼び出す “` voidCallback.call(); // 以下でも可能。 voidCallback(); “` ### 利用用途 明示的に「このコールバックには引数がないですよー」と
For loop の処理が全て終わってから次の処理をする
“`swift let dispatchGroup = DispatchGroup() for work in works { dispatchGroup.enter() // Do your work dispatchGroup.leave() } dispatchGroup.notify(queue: .main){ // ループ処理が全て完了したあと呼ばれる。 } “` ? **** フリーランスエンジニアです。 お仕事のご相談こちらまで rockyshikoku@gmail.com Core MLやARKitを使ったアプリを作っています。 機械学習/AR関連の情報を発信しています。 [Twitter](https://twitter.com/JackdeS11) [Medium](https://medium.com/@rockyshikoku)
Xcode13でInfo.Plistがない。どこ?
Xcode13で新しいプロジェクトを作ると、Info.Plistがない。 CameraUsageDescriptionとか追加できへんやん。 安心してください、**追加方法が変わっただけです**。 #Info追加方法 Xcodeの左のペインのアプリのトップレベルを選択し、**TARGETSでInfoタブを選択**する。 ![スクリーンショット 2021-11-11 2.09.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/1b6384cb-bcf0-4ae0-a23e-50febb9cb5a1.png) ここで、これまで通りPrivacy Camera Usage Descriptionなどを設定すればOKです。 焦
【Flutter】プラグインでiOSのrootViewControllerを取得する方法
#概要 FlutterプラグインでiOSネイティブ画面を利用するために、rootViewControllerを取得する方法を整理します。 [こちら](https://qiita.com/mkosuke/items/b384035e507ad0208c10)の記事を参考にさせていただきました(ただただ感謝✨✨)。プラグイン作成時にはself経由でrootViewControllerを取得できず、代替手段が必要になるため、その補足記事となります。 #環境 “`shell-session $ flutter –version Flutter 2.5.3 • channel stable • https://github.com/flutter/flutter.git Framework • revision 18116933e7 (3 weeks ago) • 2021-10-15 10:46:35 -0700 Engine • revision d3ea636dc5 Tools • Dart 2.14.4 “` #実装 UIApplication経由でrootViewContr
Flutter : TextFormFieldでUIを描画できない
#はじめに 現在flutterでアプリを作成中(カレンダーアプリ的なやつ)超初心者で勉強中 アカウント機能 ログイン機能を作成中に本事象に遭遇してなるほどーと思ったのでメモ程度に #開発環境 ・使用言語:dart(flutter) ・AndroidStudio 4.1.2 ・iOS シミュレーター(iOS14.5) #事象 TextFormFieldを使用して入力フォームを作成しようと思ったが、以下のエラーが表示され対象画面へ遷移した際にUIが描画されない “` The following assertion was thrown during layout: A RenderFlex overflowed by 99164 pixels on the bottom. The overflowing RenderFlex has an orientation of Axis.vertical. The edge of the RenderFlex that is overflowing has been marked in the rendering with a yello
Xcode のSimulator に旧iOS のイメージを追加する[Big Sur]
Xcode のSimulator を使って,iPad OS 14 を動かしたかったのだけど,Xcode インストール時には最新のiOS 15 しか用意されていなかった.
ネット上の情報とはUI とか色々変わっていて,古いOS の追加方法が分からなかったのでメモ.
前提
使用しているMacBook Pro のOS はBig Sur 11.5.2, インストールしたXcode はVersion 13.1 です.
結論
旧OS の
iOS15.1をXcodeでビルドしたい時にUnsupprted OS versionになってしまうのを回避するやり方
#事象 iOS15.1にアップデートしちゃったけど、Xcode上で「Unsupprted OS version」と表示されビルド出来ない。 前回と同じようなネタだけど再現したため投稿。 ![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90301/a9154dd6-69e0-e00c-62e8-742c40d6820f.png) #対処策 Device Supportのフォルダの”15.0″を複製し、”15.1″にリネームする。 “15.0”が無い場合は、Xcode 13.1をダウンロードしてから抽出する。 #手順 1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ 配下で15.0を複製する ![スクリーンショット 2021-11-09 13.51.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90301/
nibを用いて、TableViewを作成(初学者向け、Delegateの説明なし、コード説明あり)
Swift初学者であり、間違っていることも、 記載していますので、ご注意ください。 ##手順1 まずはTableCellクラスで、 Nibの名前、IDをスタティック定数として、記載しておく。 **メリット** コードで管理して、スペルミスを防ぐ+入力変換に表示される “` final class ItemListTableViewCell: UITableViewCell { static let nibName = UINib(nibName: “TableViewCell”, bundle: nil) static let nibID = “Cell” } “` ##手順2 TableViewCellに、Identifier:Cellを設定。 ![スクリーンショット 2021-11-09 8.34.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/799713/749856e9-51bc-5105-4afb-ae2c72b80afc.png) ##手順3 V
【Flutter】プラグイン作成時にiOSローカルのライブラリを参照する方法
# 概要 Flutterプラグイン作成時に、プラグイン側でiOS向けローカルライブラリを抱きこむ際の設定方法を整理します。 ユースケースとしては、プラグイン利用者が公開済のpodを利用するのではなく会社独自のiOSライブラリ等をプラグインを通してFlutterで利用することを想定しています。 # 環境 “`shell-session $ flutter –version Flutter 2.5.3 • channel stable • https://github.com/flutter/flutter.git Framework • revision 18116933e7 (3 weeks ago) • 2021-10-15 10:46:35 -0700 Engine • revision d3ea636dc5 Tools • Dart 2.14.4 “` # 実施内容 ① Frameworkの取り込み a. iOSプロジェクト直下に利用したいライブラリのframeworkをコピーアンドペースト - ※frameworkは、exampleのiosプロジェクトを配置し
Unity2019でAdmob実装時にクラッシュして表示されないときの対処法
https://kaedeee.com/unity2019-admob/ しばらく更新していませんでした!というのもアプリ作るのにはまってて笑 (アプリのURLはまた後で) ところで今回は、 Unity 2019でAdMobを実装した際にクラッシュしてしまいアプリが表示できなくなってしまう時の対処法です。 (やはり Unity 2019は最新版ということで2019に関する記事がなかなかなーい!!笑笑) というわけで僕のでよければ参考にどうぞ。 結論から言うと以下二つに対応することでうまくいきました!! (あ、Android アプリ用です。この記事) #Unityのバージョンを確認する 結論から言うと Unity 2019 1.4f1 × Google mobile ADS Unity plugin 3.16 が最強! はじめ自分は Unity のバージョン→ 2019.3.0a3 に AdMobのバージョン→Google mobile ADS Unity plugin v3.17 を投入! ですがこの時にx86 no
AppStore リジェクト「Safety – Physical Harm: COVID-19 の対策について触れてるけど情報ソースがないよ」の対処
初めて見るリジェクト内容で少し戸惑ったため共有。 # 状況 2021年10月ごろ。 とあるイベントで使用するアプリの申請を行った際に「Guideline 1.4.1 – Safety – Physical Harm」を理由にリジェクトされた。 # 詳細 リジェクト内容は以下。 > Your app provides health or medical recommendations or references without including the sources of the medical information. > Specifically, we found your app includes safety precautions related to COVID-19 upon launch. > All apps with medical and health information should include links to sources for the information. This helps ensure that App Store u
UITextView上の任意のテキストに対してカスタムContextMenuを提供する
[UITextView](https://developer.apple.com/documentation/uikit/uitextview)では、[dataDetectorTypes](https://developer.apple.com/documentation/uikit/uitextview/1618607-datadetectortypes)を指定することにより、[カレンダーイベント](https://developer.apple.com/documentation/uikit/uidatadetectortypes/1618506-calendarevent)、[住所](https://developer.apple.com/documentation/uikit/uidatadetectortypes/1618504-address)、[飛行機の番号](https://developer.apple.com/documentation/uikit/uidatadetectortypes/1648140-flightnumber)などを認識し、タップアクションとコン
iOSアプリ開発に便利なライブラリ
#はじめに – ライブラリについてメモとして記事を書いています。 #便利なライブラリ一覧 – IQKeyboardManager – Kingfisher – SnapKit – lottie-ios #IQKeyBoardManager ### どんなライブラリ? – IQKeyboardManagerのGitHubから引用 – While developing iOS apps, we often run into issues where the iPhone keyboard slides up and covers the UITextField/UITextView. IQKeyboardManager allows you to prevent this issue of keyboard sliding up and covering UITextField/UITextView without needing you to write any code or make any additional setup. To use IQKeyboardMana
【Flutter】Statefullなカウンターアプリをhooks_riverpod+state_notifier+freezedでリファクタリングする
FlutterのNullSafetyがstableになってしばらくたち、最近になってriverpodがstableになったので、記念にhooks_riverpod + state_notifier + freezedの使い方を最低限記載しておきます。 プロジェクトを作った時に作られるカウンターアプリを上記パッケージを使って実現するようにリファクタリングしていきます。 # tl;dr – flutterの初期アプリをhooks_riverpod+state_notifier+freezedを使うようにリファクタリングする – 結論としては単機能なアプリでこんなに複雑にやると余計わかりずらい(趣旨としてはサンプルなので良いのですが、、、) – freezedも無理やり使ったしhooksはさすがに使えなかったので、hooks特有の機能については本記事のスコープ外 #### 完成版の全コード https://github.com/tokku5552/flutter_riverpod_sample/tree/1.0.0 ## 環境 – Android Studio “`yaml: