iOS関連のことを調べてみた2022年08月23日

iOS関連のことを調べてみた2022年08月23日

UICollectionViewでドット絵表示

![Xcode-13.1](https://img.shields.io/badge/Xcode-13.1-brightgreen)

## はじめに
WWDC 2019 で紹介された `UICollectionView` でシュバババと並べ替えが起きるアニメーションをみてやってみたい!と思った人は多いと思います([Advances in UI Data Sources](https://developer.apple.com/videos/play/wwdc2019/220/)の 22:00 ~ くらいのやつ)。

ドット絵表示して切り替えるときに使うとかっこいいんじゃないかと思いこういうのを作ってみました。

【Flutter】intro_slider の使い方

## 初めに
intro_slider とは、以下のようなチュートリアルの画面を作成するためのパッケージです。
![intro_slider_sample.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609901/7316c25b-ecb8-0b73-4b22-d77848f9862c.gif)

## 準備
まずは、[intro_slider パッケージ](https://pub.dev/packages/intro_slider) を「 pubspeck.yaml 」に記述します。
パッケージのバージョンは、特に制約がなければ最新のバージョンで問題ありません。

“`yaml: pubspeck.yaml
dependencies:
flutter:
sdk: flutter

intro_slider: ^3.0.9
“`
Pub get をして準備は完了です。

## 実装
まずは実装したい画面で intro_slider をインポートします。
“`dart: ma

元記事を表示

swift基礎アウトプット 

swiftの学習を始めたので学習内容をアウトプット。

学習内容

・変数の定義「var」

“`
 「例」: var a: String = “ほげげ” // 変数であるため、記述後に値が変わる場合に「var」を使用
var a = “ほげげ” // 型推論として、値がString(文字列)ならString型と自動的に設定される。
“`

・定数の定義「let」

“`
 「例」: let a: Int = 3 // 定数であるため、記述後に値が変わることがない場合に「let」を使用
var a = 3 // 型推論として、値がInt(数値)ならInt型と自動的に設定される。
“`
・基本的な型「String」「Int」「Double」「Bool」

“`
 「例」: let a: String = “ふが” // 文字列を表現するのが「String」
  let a: Int = 3 // 数値を表現するのが「Int(intege

元記事を表示

Fastlaneを使ったiOSの証明書/プロファイル管理

![Fastlaneを使ってiOSの証明書を管理する.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110131/bd91553e-cba5-de72-7df7-632fade5719d.png)

# 前置き
iOSアプリの複数人開発で一番厄介なのが「証明書」周りですよね。
新しい開発メンバーがJoinしてくると、最小限でも以下の作業が発生してきます。

* AppleDeveloperアカウントの新規作成
* 新メンバーをDeveloperPortalへ招待
* 証明書・プロビジョニングファイルの作成・更新

基本的には、AutomaticSigningによって自動的に証明書・プロビジョニングファイル周りが設定されますが、厳密なプロジェクトだと証明書を新規作成してはならない。などの制約がある場合があります。

また、CI/CDを運用している場合、どうやってCI上で証明書・プロビジョニングファイルを扱うかといった問題も発生してきます。

そこで、今回は `fastlane` の `match` を使っ

元記事を表示

GIDSignInButton の見た目と状態のカスタマイズ – GoogleSignInSwift の場合 –

前回、以下の記事を書いたのですが、書いた後に GoogleSignInSwift という Product があることを認識しました。

https://qiita.com/kamimi01/items/ffa865390e5868bc4594

GoogleSignIn は Objective-C x UIKit で実装されているのに対し、
GoogleSignInSwift は Swift x SwiftUI で実装されています。

また、カスタマイズのためのプロパティも後者の方が1個増えてたので、GoogleSignInSwift 版の記事も書いてみるか、と思い立ちました。

# 環境

– Xcode 13.4.1
– Firebase 9.0.0
– GoogleSignin 6.0.0 の GoogleSignInSwift(**GoogleSignではない方**)
– iPhone 13 (15.5) Simulator:ライトモード

# カスタマイズ可能な部分

`GIDSignInButton`クラスのコードを確認したところ、そのクラスから提供されているカスタマイズ可

元記事を表示

SpriteKit( by SwiftUI)のハンズオン

お仕事で初めてSpriteKitを触った
SpriteKitの日本語記事があまり見つけられず、また古い情報が多かった
情報かき集めながらの対応が初学者にはツラかったので備忘録

普段はWEBアプリケーションが主体、Swiftによる開発も初めてでゲーム開発者でもない
お作法のようなところは存じ上げていないため、不適切な解説・表現があれば是非コメントいただきたい

– 動作確認環境
– Swift:5.6.1

# はじめに
SpriteKitとは何ぞやは、『[10分で理解するSpriteKit](https://qiita.com/Chanmoro/items/da95cc121bb31263c5ca)』を参照されたい
> Apple が提供している2Dのゲームを作るためのフレームワークです
> アニメーションや物理シミュレーションを使ったゲームが簡単に実装できます
>
> 『10分で理解するSpriteKit』から部分引用

今回、私がやりたかったことはすでにあるSwiftUIベースのアプリケーションに描画アニメーションを多用した機能を追加こと
半日ぐらい色々試してようやくSp

元記事を表示

Unity iOS Xcode ビルドエラーまとめ

# はじめに
今回、初めてUnityで作成したゲームをiOS向けにリリースする中でかなりのエラーに苦しまされたので、対応方法を下記にまとめてみました。
参考になれば幸いです。
また、同様の事象や他の解決策があれば是非コメントで共有お願いいたします。

# 目次
1.開発環境
2.Cocoapodsに関するエラー
3.Xcode上でVaridate Appを行なった際に発生するエラー1
4.Xcode上でVaridate Appを行なった際に発生するエラー2
5.Apple Reviewでの審査棄却 ”Guideline 2.1”
6.Apple Reviewでの審査棄却 ”Guideline 5.1.2”
7.Appleから届いたログファイルのシンボル化

# 開発環境
PC:Macbook air(M1)
OS:macOS Monterey v12.5
Unity:2021.3.7f1(Apple silicon)
Xcode:v13.4.1
GoogleMobileAds:v6.1.2
Cocoapods:v1.11.3

# 1.Cocoapodsに関するエラー
■詳

元記事を表示

SwiftUI: アプリの起動時に1回だけやりたい処理はどこに書けばいいのか

自分用の時刻表アプリを作ろう、という記事を以前書いたのですが、

https://qiita.com/tnar-f/items/1a95429cf5e8547f0b2f

これに復路のViewを追加しよう、と思った時に、Viewの.onAppearに起動時に1回だけやる処理を記述していたことが問題になりました。Viewがひとつだけなら問題ないのですが、複数のViewを行ったり来たりする場合、Viewが表示されるたびに.onAppearが実行されてしまいます。

ということで、起動時に1回(だけやりたい/しかやってはいけない)処理はどこに書けばいいのか、調べてみました。

Xcodeでプロジェクトを作った時に(プロジェクト名)App.swiftなるファイルが作られたと思いますが、あれの中に書くのが正解のようです。

“`Swift
import SwiftUI

@main
struct MyProject1App: App {
var body: some Scene {
WindowGroup {
ContentView()

元記事を表示

GIDSignInButton の見た目のカスタマイズ

この前初めて、Firebase Authentication を使用した Google でのサインインを実装しました。

GoogleSignIn のパッケージが提供してくれているデフォルトの `GIDSignInButton`の見た目のカスタマイズがどこまでできるかを調べてみたので、それについて記載します。

SwiftUI を使用したコードになっています。

# 環境

– Xcode 13.4.1
– Firebase 9.0.0
– GoogleSignin 6.0.0 の GoogleSignIn(**GoogleSignInSwiftではない方**)
– iPhone 13 (15.5) Simulator:ライトモード

# カスタマイズ可能な部分

`GIDSignInButton`クラスのコードを確認したところ、そのクラスから提供されているカスタマイズ可能なプロパティは、以下2つです

– `GIDSignInButtonStyle`:レイアウトのスタイル
– `GIDSignInButtonColorScheme`:カラースキーム

![image.png](htt

元記事を表示

SwiftUI: TabViewを使って2つのViewをスワイプ動作で切り替える

自分用の時刻表アプリを作ろう、という記事を書いた時に、往路と復路の時刻表画面をスワイプ動作で切り替えられたらいいな、と思ったのでやってみました。

https://qiita.com/tnar-f/items/1a95429cf5e8547f0b2f

Viewを2つ用意します。

Sub1View.swift
“`Swift
import SwiftUI

struct Sub1View: View {
var body: some View {
Text(“This is Sub1View”)
}
}

struct Sub1View_Previews: PreviewProvider {
static var previews: some View {
Sub1View()
}
}
“`

Sub2View.swift
“`Swift
import SwiftUI

struct Sub2View: View {
var body: some View {
Text(“This is S

元記事を表示

Error Analyzing App Version library

xcodeのorganizerからApp Store Connectにアプリをバイナリアップロードしようとしたとき、表記エラーが発生して、アップロードできない。

##調査

検索するといろいろでてくるが、どれも違う。

– https://dev.classmethod.jp/articles/ios-xcode-13-app-store-connect-rxswift-6-2-0/
– https://stackoverflow.com/questions/69548498/xcode-error-analyzing-app-version-when-validating-app-in-archive-organizer
– https://stackoverflow.com/questions/69433432/what-is-an-error-analyzing-app-version-when-distributing-from-xcode
– https://developer.apple.com/forums/thread/693335

##解決
ビルドバージョンに「

元記事を表示

Unity で Google Mobile Ads (AdMob) を使うコード

## 前提
– Unity 2021.3.8f1
– Google Mobile Ads Unity Plugin v7.1.0
– Apple App Store、Google Play Store
– この記事では、Google Mobile Adsの一部機能を限定的に使用し、汎用性のない部分があります。
– この記事では、以下の内容を扱いません。
– Google Mobile Adsのルールやコンソールの使い方など
– Unityエディタの使い方やモバイル向けのビルド方法など
– この記事のソースは、実機でテストしていますが、本番広告でのテストはしていません。
– プロジェクトで使用したIDはテスト用のもので、ストアで公開する製品に使用できるものではありません。

## できること
– AndroidまたはiOSで、AdMobを利用します。
– 複数のバナー、インタースティシャル、リワードビデオ広告の表示を制御し、シーンに応じて広告を切り替えます。
– 報酬の獲得を検出します。

## リソース
### このプロジェクト
– [ソース (GitHub)](https

元記事を表示

SwiftUIのTextにマークダウンを使用する

SwiftUIではmarkdownがサポートされているため、テキストを太字にしたり、リンクを組み込んだりすることができます。

# 使い方
“`swift
var body: some View {
VStack {
Text(“**Hello, world!**”)
Text(“[Apple](https://www.apple.com/)”)
Text(“~~striked through~~.”)
}
}
“`

# リンクの色を変更する
`.tint`を使用することでリンクの色を指定することができます。

“`swift
Text(“[Apple](https://www.apple.com/)”)
.tint(.red)
“`

元記事を表示

アプリの通知許可部分の小ネタ

# 現場で知った小ネタの共有
## あの許可モーダルってこんなことやっていたんですね
アプリのインストールして使い始めると「通知の許可」を確認してくるモーダルが出てきたことがあると思います。
あの質問は聞かれた瞬間にアプリの設定に項目を追加しているようです。

こんなやつです。↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2657595/7368eabf-d8cd-944d-f72f-7292ca0c12c2.png)

### 確認モーダルが表示される前のiPhoneの設定画面

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2657595/85700240-ecfc-d550-dc3b-fa3b4d2277e0.png)

### 確認モーダル表示後の設定画面

![image.png](https://qiita-image-store.s3.ap-northeast-1.ama

元記事を表示

【Flutter】percent_indicator の使い方

## 初めに
percent_indicator とは、以下の画像のように何らかの達成状況を示すための Widget です。
家計簿のアプリや習慣化のアプリに多く使用される印象です。

## 準備
まずは、[percent_indicator パッケージ](https://pub.dev/packages/percent_indicator) を「 pubspeck.yaml 」に記述します。
パッケージのバージョンは、特に制約がなければ最新のバージョンで問題ありません。

“`yaml: pubspeck.yaml
dependencies:
flutter:
sdk: flutter

percent_indicator: ^4.2.2
“`
Pub get をして準備は完了です。

## 実装
まず

元記事を表示

【SwiftUI】Bindingの初期化方法

# 初期化方法
“`swift
struct SearchView: View {
@Binding private var searchText: String

init(searchText: Binding) {
self._searchText = searchText
}

var body: some View {
Text(searchText)
}
}
“`

:::note info
ポイント1
`init(searchText: Binding)`
Binding<型名>で定義する
:::

:::note info
ポイント2
`_searchText`
変数名の前に`_`を付けることでBindingを示す
:::

元記事を表示

iOS16 MapKitの新機能 : 地図から場所を選ぶ、通りを見回す、検索補完(MKLookAroundScene, MKMapFeatureAnnotation, MKLookAroundSceneRequest, selectableMapFeatures)

MapKitは、iOSアプリケーションが利用できる無料のサービスで、
地図の表示、場所の検索、見回し画像の提供などを行うことができます。
iOS 16 の MapKit では、ユーザーが地図から場所をクリックして選択することができ、
また、通りを見回す (Look Around) を提供することができます。

### 地図から場所を選ぶ

### アプリに通りを見回すビューを表示します。

### 通りを見回す画像のスナップショット

元記事を表示

[Swift] Task Groups の基礎

## 概要

Task Groups は複数のタスクを並列に実行するための仕組みです。この記事では Task Groups の基本的な使い方から、キャンセル周りも含めた細かい振る舞いまで理解していきます。

記事中の動作検証は Xcode 14 Beta 5 で行っています。

## TL;DR

– Task Groups は子タスクを並列に実行したいときに使う。とくに、同じ型を返す動的な数の子タスクの実行に適している
– Task Group は `withTaskGroup` か `withThrowingTaskGroup` で生成できる。子タスクがエラーを投げない場合は前者、投げる場合は後者を使う
– 基本的な流れとして `with(Throwing)TaskGroup` に渡すクロージャの中で子タスクを生成する処理とそれを受け取る処理を書く
– 子タスクの生成は `addTask(UnlessCancelled)` で行う。典型的には `for` 文で Collection の要素を回してそれをもとにタスクを生成することが多い
– 受け取り処理は `for

元記事を表示

SwiftUIのsearchableモディファイアを使ってみる

アプリで検索機能を実装するときによく使用するのがSearchBarですが、iOS15からSwiftUIに`.searchable`モディファイアが追加されたので使い方などを書いていこうと思います。

https://developer.apple.com/documentation/swiftui/view/searchable(text:placement:)

# 事前に
今回の記事で使用する検索フィールドを追加するViewです。
こちらのコードにsearchableモディファイアなどを追加していきます。

“`swift
struct ContentView: View {

let colors: [String] = [“Red”, “Blue”, “Yellow”, “Purple”, “Orange”, “Green”, “Pink”, “White”, “Gray”, “Black”]

var body: some View {
NavigationView {
List {

元記事を表示

OTHERカテゴリの最新記事