- 1. FlutterFlowで画面の向きを固定する方法
- 2. 【SwiftUI】CustomAnimationを使って点滅アニメーションを自作する(iOS17)
- 3. [Unity] iOS で ATTダイアログ表示前に admob で設定したUMP IDFA メッセージを表示したい!
- 4. 【Xcode15】【エラー】「Sandbox: rsync.samba(43610) deny(1) file-write-create /Users/開発者名/Library/Developer/Xcode/DerivedData/アプリ名-gzyuowsnikwwxlgolkqjdiieoeqg/Build/Products/Debug-iphonesimulator/アプリ名/Frameworks/Realm.framework/_CodeSignature」
- 5. ProvisioningProfileって何なの?iOSアプリ開発における役割について
- 6. 【Unity】iOS ビルド時に Command PhaseScriptExecution failed with a nonzero exit code となってしまう。
- 7. 【Swift】標準イニシャライザとメンバーワイズイニシャライザの違い
- 8. [備忘録] カスタムセルをコードで作成 (UITableViewCell)
- 9. 【React Native】Jotaiによってグローバルステートを永続化する
- 10. 【SwiftUI】特定の角だけ丸角にする(iOS16)
- 11. 【ios 17】パフォーマンス改善と最適化
- 12. [Unity] iOS Resolver にて 不幸にも Failed to install CocoaPods となってしまう。実際はCocoapods が入っているのに.
- 13. 【Xcode】シュミレーターを実寸大のサイズに変更する
- 14. ipaやappをコマンドラインでインストールする
- 15. 【TCA】DependencyClientマクロでボイラープレートを大幅削減
- 16. Expoプロジェクト起動時のnon-std C++ exceptionエラーとその対処法
- 17. iOS開発でよく使うWebサイト
- 18. 【SwiftUI】ScrollView内でframeを指定せず、画面にあったサイズに調整する
- 19. コマンドラインでiOSアプリをビルドしシミュレータで起動する
- 20. 【SwiftUI】ATTが表示されない問題の解決策
FlutterFlowで画面の向きを固定する方法
## はじめに
### FlutterFlowについて
[FlutterFlow](https://flutterflow.io/)は、爆速モバイルアプリ開発を実現する、画期的なビジュアルプログラミングツールです。簡単なアプリなら本当にその日のうちにテストフライトまでが完了していると優れたツールです。
### FlutterFlowの優れている点
FlutterFlowの優れた点として拡張性があります。プリセットで用意されていない機能や要素は自分でコーディングすることができるため、痒いところになるべく手が届くようになっています。## 目標
アプリの画面を縦に固定するCustom Actionを作成して、アプリの全ページを縦画面に固定します。## CustomActionの作成
サイドバーから、「Connect > CustomCode」を選択します。
新しい「CustomAction」を作成します。名前を`setPortraitUp`としてください。
Action Codeには以下のように記述します。
作成すると自動的に`import`が複数書かれます。この部分はその他の設定に
【SwiftUI】CustomAnimationを使って点滅アニメーションを自作する(iOS17)
# はじめに
iOS17から`CustomAnimation`というものが追加されました。
これは名前の通り、アニメーションをカスタムできる機能っぽいです。
使ってみたので記事にしておきます。# サンプルアプリ
![Simulator Screen Recording – iPhone 15 – 2023-11-26 at 23.03.52.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/3d981e5a-c217-149f-ed20-ea9d954571ea.gif)# 実装
経過時間の小数点第一の偶数と奇数を判定して進行値に前後する値を渡す事で、点滅させる事ができます。
“`swift
import SwiftUIstruct ContentView: View {
@State private var isHidden = falsevar body: some View {
VStack(spacing: 10) {
[Unity] iOS で ATTダイアログ表示前に admob で設定したUMP IDFA メッセージを表示したい!
# 前置き
iOS 14以降にて表示することが可能になっていた ATT(App Tracking Transparency)ダイアログだが、筆者はAdmob のために利用していた。
で、最近のGoogle Admob のアップデートで、ATTダイアログ表示前に、カスタムIDFAメッセージを表示できるようになった。(どうやら Google User Messaging Platform SDK というのを使うらしい。)
![Screenshot 2023-11-26 at 18.28.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/4587b545-6ac0-5074-e244-7390f9bc358a.png)
このメッセージは、Admob ダッシュボード上で設定でき、アプリ側ではAPIのコールをしさえすれば表示できるらしい。
![Screenshot 2023-11-26 at 18.25.07.png](https://qiita-image-store.s3.ap-
【Xcode15】【エラー】「Sandbox: rsync.samba(43610) deny(1) file-write-create /Users/開発者名/Library/Developer/Xcode/DerivedData/アプリ名-gzyuowsnikwwxlgolkqjdiieoeqg/Build/Products/Debug-iphonesimulator/アプリ名/Frameworks/Realm.framework/_CodeSignature」
Xcode15で下記のようなエラーが発生しました。
Sandbox: rsync.samba(43610) deny(1) file-write-create /Users/開発者名/Library/Developer/Xcode/DerivedData/アプリ名-gzyuowsnikwwxlgolkqjdiieoeqg/Build/Products/Debug-iphonesimulator/アプリ名.app/Frameworks/Realm.framework/_CodeSignature
こちらのエラー解決方法について記載します。
![スクリーンショット 2023-11-26 17.23.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3621000/5124f3a7-76aa-cfe7-fba4-5cfd8004ee25.png)
①アプリの設定画面を開く
②Build Settingを選択
③「User Script Sandboxing」をYes→Noへ変更
④build
ProvisioningProfileって何なの?iOSアプリ開発における役割について
# ProvisioningProfileとは
ProvisioningProfileとは、iOSアプリのコード署名に必要なファイルです。
ProvisioningProfileの中には以下の情報が格納されています:
– アプリ発行元の証明書(公開鍵)
– アプリID
– 開発実機端末のUUID(開発用プロファイルのみ)Xcodeはアプリバイナリのビルド時にProvisioningProfileを使用して、これらの情報を組み込んでいます。
## ProvisioningProfileの目的
ProvisioningProfileが果たす主な役割は、以下の二つです:
– アプリの開発元が正当であることを証明する。
– 特定の端末にのみアプリをインストール可能にする(開発版アプリのみ)。これらの目的を達成するため、開発元の証明書やデバイスの情報をProvisioningProfileにパッケージ化し、アプリに組み込む必要があります[^1]。
[^1]: そういう風にCodeSigningの仕組みはつくられました。筆者個人としては、もっとよい設計があるのではないかと考えていますが、
【Unity】iOS ビルド時に Command PhaseScriptExecution failed with a nonzero exit code となってしまう。
# 環境
Unity 2023.1.10f1
Xcode 15.0.1# 問題
iOS ビルド時に以下のエラーが出る
“`text
Command PhaseScriptExecution failed with a nonzero exit code
“`# 対処法
Unity を~~最新版に~~アップデートする👇
~~Unity 2023.2.1f1~~~~Unity 2023.1.20f1~~
👍👍👍 Unity 2023.1.15f1 👍👍👍
【Swift】標準イニシャライザとメンバーワイズイニシャライザの違い
# この投稿は何?
Swiftの構造体について、自動的に提供される2種類のイニシャライザを解説します。
> Swiftを基礎から学ぶには
自著、工学社より発売中の「[まるごと分かるSwiftプログラミング](https://amzn.asia/d/7YPWJwl)」をお勧めします。変数、関数、フロー制御構文、データ構造はもちろん、構造体からクロージャ、エクステンション、プロトコル、クロージャまでを基礎からわかりやすく解説しています。
> また、Swiftプログラミングを基礎から動画で学びたい方には、Udemyコース「[今日からはじめるプログラミング](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwii1qTuj_2BAxV4hlYBHbj5BqEQFnoECBYQAQ&url=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fstart-programming-today%2F&usg=AOvVaw2vs4Sccq-bpfA
[備忘録] カスタムセルをコードで作成 (UITableViewCell)
Storyboardを使わないカスタムセルの作成方法を、毎回調べてしまうので備忘録として残しておきます。
# 作成
– UITableViewCellを継承したクラスを作成します。
– `init`と入力して3番目くらいに出てくる`init(style:, reuseIdentifier:)`を選択して、親クラスのを呼び出します。
– 出てくる警告の[Fix]を押して`required init?(coder: NSCoder)`を補完します。
“`swift
class CustomCell: UITableViewCell {
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setUpViews()
}required init?(coder: NSCoder) {
fatal
【React Native】Jotaiによってグローバルステートを永続化する
## 事象
ニュースアプリ開発において、ユーザーがクリップした記事をアプリを閉じたあとも保持する必要がありました。この記事では、Jotaiを使用してグローバルステートを永続化する方法を共有させていただきます。
## 対処法
以下のコードは、`Jotai` の `atomWithStorage` を使用して、クリップした記事の状態を永続化します。`createJSONStorage` は、`AsyncStorage` と連携してデータをJSON形式で保存・取得します。`Jotai` のGitHubディスカッションによると `createJSONStorage` は型安全ではないため、回避策として、いったん `any` を指定しております。以下によって生成する `clipAtom` を必要な箇所にて `useAtom` によって呼び出します。
“`clip.ts
import AsyncStorage from ‘@react-native-async-storage/async-storage’;
import { atomWithStorage, createJSONSto
【SwiftUI】特定の角だけ丸角にする(iOS16)
# はじめに
iOS15以下を対応する場合は以下の記事の方法が良さそうです。https://qiita.com/chocoyama/items/1cb7040f0e717406a6f4
# 完成サンプル
![Simulator Screenshot – iPhone 15 – 2023-11-25 at 12.58.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/f81c4469-ce53-c5d6-e530-d6343add1c45.png)# 実装
“`diff_swift
import SwiftUIstruct ContentView: View {
var body: some View {
Image(.sample)
.resizable()
.scaledToFit()
+ .clipShape(.rect(
+ topLeading
【ios 17】パフォーマンス改善と最適化
## アプリ起動の高速化とレスポンス改善
ios 17では、アプリの起動時間を短縮し、レスポンスを改善するための最適化が行われています。これにより、ユーザーはよりスムーズにアプリを利用することができます。
具体的なアプリ起動の高速化とレスポンス改善のためのポイントを以下に示します。
### 1. コードの最適化
アプリの起動時間を短縮するためには、コードの最適化が重要です。無駄な処理や重い処理を見つけ、効率的な処理への書き換えを行いましょう。
“`swift
// 重い処理の例
func heavyprocess() {
// 重い処理を実行するコード
}// 軽量化した処理への書き換え例
func lighterprocess() {
// 軽量化された処理を実行するコード
}
“`### 2. 画面の最適化
アプリの起動後に表示される画面の最適化も、レスポンス改善に繋がります。特に、初期表示される画面の描画処理が重い場合には、パフォーマンスが低下する可能性があります。
“`swift
// 重い描画処理の例
func heavydrawi
[Unity] iOS Resolver にて 不幸にも Failed to install CocoaPods となってしまう。実際はCocoapods が入っているのに.
# 問題
m3 mac の Unity にて
iOS Resolver > Install Cocoapods としたときに
以下の現象が発生。
“`text
WARNING: You don’t have /Users/USER_NAME/.gem/ruby/2.6.0/bin in your PATH,
gem executables will not run.
ERROR: Error installing cocoapods:
The last version of drb (>= 0) to support your Ruby & RubyGems was 2.0.5. Try installing it with `gem install drb -v 2.0.5` and then running the current command again
drb requires Ruby version >= 2.7.0. The current ruby version is 2.6.10.210.
“`…まずうちさぁ、Flutter の初期
【Xcode】シュミレーターを実寸大のサイズに変更する
# はじめに
Kyomeさんのツイートを見てシュミレーターを実寸サイズにする方法を知ったので記事に残しておきます。https://x.com/kyomesuke/status/1727873051306647716
# やりかた
① 「Window」を選択します。
② 「Physical Size」を選択します。
# おわり
`command` + `1`でも同じ事ができます
ipaやappをコマンドラインでインストールする
アプリの再インストールを頻繁に繰り返す必要がある時に以下のようにコマンドラインでインストールすることができます。
“`
ideviceinstaller -i hoge.ipa
ideviceinstaller -i hoge.app
“`
【TCA】DependencyClientマクロでボイラープレートを大幅削減
# はじめに
swift-dependenciesの[v1.1.0](https://github.com/pointfreeco/swift-dependencies/releases/tag/1.1.0)で`DependencyClient`というマクロが導入されました。https://github.com/pointfreeco/swift-dependencies/pull/132
このマクロを使用すると、`”struct of closures”`スタイル[^1]で依存クライアントを実装している場合に記述しているボイラープレートを大幅に削減することができます。
[^1]: TCAやってる人にはお馴染みの、ネットワーク通信等を行うクライアントを構造体で実装する設計パターンを指しています。PRの概要欄にそう書いてあったので引用しました。これが定着すると伝えやすいなあ。
# マクロ導入前のコード
Githubの検索APIをリクエストするクライアントの実装を考えます。インタフェースは例えばこんな感じになるでしょう。
“`swift
import Dependenci
Expoプロジェクト起動時のnon-std C++ exceptionエラーとその対処法
## 事象
`npx expo start` コマンドを使用して Expo プロジェクトを起動し、Xcodeを通じてiOSデバイスでのアプリ動作を確認しようとした際に、以下のエラーが発生しました。
“`
non-std C++ exception
“`## 対処法
以下のコマンドを実行することで、キャッシュをクリアし、問題を解消することができました。このコマンドは、Expoのキャッシュをクリアし、再起動することで、潜在的な問題をリセットします。詳細な原因は調査中です。。:thinking:
“`
npx expo start –clear
“`## 参照
https://github.com/facebook/react-native/issues/35652
https://stackoverflow.com/questions/76375461/how-can-i-solve-a-non-std-c-exception-in-my-react-native-typescript-applicatio
自らの備忘録のために投稿してますが、なにかお役に
iOS開発でよく使うWebサイト
## apple 公式
iOS & iPadOS Release Notes
https://developer.apple.com/documentation/ios-ipados-release-notes日本語ドキュメント
https://developer.apple.com/jp/documentation/iOSのバージョン割合
https://developer.apple.com/support/app-store/## apple 非公式
OSStatus.com
https://www.osstatus.com/Xcode Build Settings
https://xcodebuildsettings.com/## Swift
Swift Package Manager
https://www.swift.org/package-manager/
フレームワークを使用可能になる、podsの代わりにもなる
【SwiftUI】ScrollView内でframeを指定せず、画面にあったサイズに調整する
# はじめに
iOS17で追加された`containerRelativeFrame`を使用すれば実現できます。# 目指すUI
今回の完成系のUIはこちらです。
![simulator_screenshot_1DA64188-71A9-4F99-8A37-AFFD79AD1E89.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/f7304e97-606b-98eb-4ab8-732100c15545.png)# 何が問題か説明
縦に図形を並べようと以下のようなコードを書きます。
“`swift
import SwiftUIstruct ContentView: View {
var body: some View {
ScrollView(.vertical) {
VStack(spacing: 16) {
ForEach(0..<50, id: \.self) { _ in
コマンドラインでiOSアプリをビルドしシミュレータで起動する
# はじめに
本稿は、コマンドラインでiOSアプリをビルドし、シミュレータにインストールおよび起動する方法について書いています。
# シェルスクリプトの作成
以下のbuild.shをプロジェクトのルートディレクトリに配置します。
build.shには `chmod +x build.sh` して実行権限を与えておきます。“`shell:build.sh
#!/bin/shSCHEME=’Your Scheme’
SIM_NAME=’iPhone 15′ # シミュレータ名
DESTINATION=”platform=iOS Simulator,name=$SIM_NAME”
CONFIG=’Debug’ # ‘Debug’ or ‘Release’
DERIVED_DATA_PATH=’./build’
APP_NAME=’Your App Name’
APP_PATH=”$DERIVED_DATA_PATH/Build/Products/$CONFIG-iphonesimulator/$APP_NAME.app”
BUNDLE_ID=’your.bundle.id’
【SwiftUI】ATTが表示されない問題の解決策
# はじめに
「ATTが表示されない」で検索すると同じ問題で記事を書いてる方が割といます。
それらの記事は`DispatchQueue.main.asyncAfter(deadline: .now() + 1.0)`で遅延実行してATTを表示させてました。
1秒遅延させたら表示されないってことはなかなかないと思いますが、個人的には美しくないと思うので、別の解決策を考えました。# 原因
おそらく、`applicationState`が`active`になっている時にATTリクエストしないとアラートが表示されないっぽい?です。`applicationState`の確認方法です。
“`swift
func debugApplicationState(mark: String) {
switch UIApplication.shared.applicationState {
case .active:
print(“\(mark): active”)
case .inactive:
print(“\(mark): inacti