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

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

SpriteKitで2D横スクロールゲームをつくろう(その5)

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

## はじめに
[前回](https://qiita.com/am10/items/90e3a2f58ae88e4ad6c4)の続きです。

今回はついにゴール作成です:sunglasses:

## 実装
ゴール判定は迷ったのですが指定のブロックに接触したらゴールしたことにします。

横に 50 個ブロックをならべているので最後の3つのブロックを判定に使います。

### クリア画面作成
クリア画面を作成します。

“`swift
final class ClearScene: SKScene {

private let jumpTextures: [SKTexture] = [
.init(imageNamed: “j1”),
.init(imageNamed: “j2”),

元記事を表示

@dynamicCallableのdynamicallyCallはasync/awaitでも使える

# 概要

タイトルそのままですが、Swiftの`@dynamicCallable`を使う上で実装が必要になる`dynamicallyCall`で、async/awaitが使えます。

## dynamicCallableについて

dynamicCallableはSwift 5で追加された機能です。
`@dynamicCallable`がマークされた型のインスタンスは、好きな名前で引数をつけて関数呼び出しが可能です。

`@dynamicCallable`がマークされた型は`dynamicallyCall(withArguments:)`もしくは`dynamicallyCall(withKeywordArguments:)` のfuncを実装します。

dynamicallyCallは、引数の名前によって動作させることができます。dynamicallyCallは好きな返り値を設定することができます。

“`swift
@dynamicCallable
struct Foo {
func dynamicallyCall(withKeywordArguments pairs:

元記事を表示

【Swift】iOSでStableDiffusionを使ってみた

# はじめに
AppleからStableDiffusionのCoreML変換バージョンが公開されました。
StableDiffusionに興味があったので使ってみました。

https://github.com/apple/ml-stable-diffusion

しかし、READMEに記載されている方法だと貧弱メモリのMacBookではできなかったので、貧弱MacBookでもできる方法を紹介します。

# サンプルアプリ
今回のサンプルアプリはこちらです。

以下の設定ができます。
– Prompt
– Image Count
– Step Count
– Seed
![スクリーンショット 2022-12-08 22.03.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/6c20fa77-c559-9656-03ba-3b46c631723a.png)

ちなみに「StepCount」を50にすると生成までに1時間くらいかかります笑

この例では「StepCount」は5で実行して

元記事を表示

SwiftUIとUIKitが共存している環境でカスタムダイアログを作ろうとして踏んだ罠

現状(2022/12現在)のSwiftUIでは`alert`にカスタムViewを設定することができません。
そのため、UIKit時代のようにカスタムダイアログを作ろうとすると力技[^1]になりがちです。
[^1]:https://qiita.com/yyokii/items/ec984833c4d040001fca

しかし、UIKitとSwiftUIを共存させようとしているプロジェクトでカスタムダイアログを作ろうとした際に思わぬ引っ掛かり方をしたので共有します。

# 何が起きたか
## やったこと
StackOverflow[^3]を参考にカスタムViewをセットできるViewModifierを作りました。
[^3]:https://stackoverflow.com/questions/66547657/swiftui-full-screen-view-over-navigationbar-and-tabbar

※だいぶ端折ってますがそれでも長いので畳んでます

CustomDialog.swift

“`s

元記事を表示

PC,モバイル,VRに対応したマルチプラットフォームアプリのリリースフロー

この記事は [クラスター Advent Calendar 2022](https://qiita.com/advent-calendar/2022/cluster) 8日目の記事です。
昨日は @UnlimitedBuildWorks さんの [私とEyePhoneの出会い](https://qiita.com/UnlimitedBuildWorks/items/0952ad190f0052d532bb) でした。
30年前からHMDが存在していたのに驚きですね!!

こんにちは!クラスター株式会社でSoftware Engineerをしているizumiです。
私は現在主にiOS/Unityの開発と、アプリのリリース担当をしています。

# clusterの対応プラットフォーム
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117503/6a1a6686-e1a9-0030-9a32-c53a5f979c43.png)

「cluster」は、VRからスマホまでどこからでも遊べるメタバー

元記事を表示

SpriteKitで2D横スクロールゲームをつくろう(その4)

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

## はじめに
[前回](https://qiita.com/am10/items/8729f77f3ee512a86052)の続きです。

今回はさみしかった画面に敵キャラを登場させます:smiling_imp:

## 素材準備
敵キャラはマヨネーズにしました(とくに意味はありません)。

| m1 | m2 | m3 |
| — | — | — |
|![m1](https://user-images.githubusercontent.com/34936885/205437544-999592a3-0c88-4230-a93f-0e86305d043a.png)|![m2](https://user-images.githubusercontent.com/34936885/205437608-8a3310

元記事を表示

iOS&AndroidのSDK開発で心がけていること

## はじめに
:::note info
この記事は、[Supershipグループ Advent Calendar 2022](https://qiita.com/advent-calendar/2022/supership) 8日目の記事になります。
:::
## 自己紹介

![logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608850/18517075-7d09-448b-6704-5a9a23b69b94.png)
[Ad Generation](https://supership.jp/business/adgeneration/)というプロダクトで、
iOS/Androidアプリ向けのSDKを開発している、 @napo と申します。

普段は .xcframeworkと.aarを開発して過ごしています。

## なんの記事?

業務で、「モバイルアプリ向けのライブラリを開発する」という、あまり馴染みの少ないポジションについて、
日々、どんなことをやっていて、どんな気付きがあるか、

元記事を表示

SwiftUIで円形のプログレスバーを作る

こんにちは!
[アイスタイル Advent Calender 2022](https://qiita.com/advent-calendar/2022/istyle) 8日目の記事をを担当します。[hayakawat](https://qiita.com/tomoyuki_HAYAKAWA)です。
アイスタイルではアプリ開発グループでiOSアプリの開発をしています。
今回は最近個人で開発したアプリで利用した円形のプログレスバーについて書こうと思います。

## 今回作るもの
円形のプログレスバーとはiPhoneのバッテリーウィジェット等で使われている緑の円のやつです。iPhoneユーザの方は見覚えあるかと思います。

## 作り方
緑の円と背景のグレーの円をピッタリ重ねることで円が満たされていくように見せています。

元記事を表示

WWDC2022の面白かった話をまとめてみた

# 初めに

WWDCの動画を視聴し、内容についてまとめていきます。

# 内容

## – Meet Swift Async Algorithms

https://developer.apple.com/videos/play/wwdc2022/110355/

前提知識として、`Concurrency` の `AsyncSequence` を用いることで、非同期の値に対しても `Sequence` のように `for in` ループを使うことができました。(らしいです)

以下の例では公式ドキュメントで紹介されているカスタム `Counter` を使用しています。`AsyncSequence` を使用する場合は `makeAsyncIterator()` の実装が必要で、`AsyncIteratorProtocol` を使用する場合は `next()` の実装が必要です。

“`.swift
for await i in Counter(howHigh: 10) {
print(i, terminator: ” “)
}
// Prints: 1 2 3 4 5 6

元記事を表示

MacOSX の環境にて iOS アプリを Flutter で開発する環境構築の話

本投稿は [テクノロジー検証 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/technology_validation) の 9日目として投稿しています。

https://qiita.com/advent-calendar/2022/technology_validation

今回は、前回紹介しました OSX 10.13 に対し、
開発環境のセットアップ 〜 iPhone のエミュレーション表示までのお話です。

> 前回:
[MacOSX の環境にて iOS アプリを Flutter で開発する前段階のお話](https://qiita.com/nk-nara/items/50b5e0740f6826913772)

https://qiita.com/nk-nara/items/50b5e0740f6826913772

# 今回の目標

以下の画面表示ができる状態までのセットアップです。
![image.png](https://qiita-image-store.s3.ap-northea

元記事を表示

NavigationStackを使ってみた?

## はじめに
[SwiftUI Advent Calendar 2022](https://qiita.com/advent-calendar/2022/swiftui)の8日目です?

iOS 16からNavigationStackという新しい画面遷移のViewが使えるようになりました?
これにより画面遷移の実装がより簡単になったと日々の個人開発の中で実感しております。

NavigationStackの使い方を模索しておりまして、一旦現状を共有することで皆さんに助言をいただきより良いものにしようとする魂胆です。
ですのでこうした方が良いよ!とかなんでこんな書き方しているの?とかご意見ありましたら、ぜひコメントください!

また投稿前日に書いているため支離滅裂な箇所もあるかと思いますので生暖かい目で見ていただければと思います?

NavigationStackを使ってモリモリ開発しているアプリが気になる方はこちらから?
https://apps.apple.com/jp/app/ticketmania/id6444087177
(レビューください⭐️)

サンプルリポジトリはこちら

元記事を表示

複数アーキテクチャ用の xcframework; Rust などで作った静的ライブラリ (*.a) から

# モチベーション
Rust で作った静的ライブラリ(*.a)を, Xcode でビルドしている iOS(/Mac) アプリにリンクして使用したい.
それぞれのプラットフォーム/アーキテクチャ向けにビルドした複数の *.a (とヘッダファイル) を,
1つの xcframework にバンドルする.

## ポイント
iOS シミュレータ(や Mac) については, 動作ターゲットが
– x86_64 な Intel Mac
– aarch64(ARM64) な M1/M2 Mac

のどちらでも使えるように, x86_64 と aarch64 向けの両方を用意したい.

## Rust ? ?
Apple の複数プラットフォーム, アーキテクチャについてビルド済みの静的ライブラリ(*.a)をバンドルしたい, といった需要があるならば, Rust に限った議論ではない.

# Rust ビルドターゲットの整理

Apple の各プラットフォーム, アーキテクチャについて, Rust の target triple をまとめておく.
[Target Tier](https://doc.

元記事を表示

【Xcode】DerivedDataによるストレージ圧迫に気をつけろ!

# はじめに
MacBookのストレージがパンパンになっている原因がわかったので記録しておきます。

# 原因
![スクリーンショット 2022-12-07 19.47.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/5efbccdc-b5ff-07e8-40be-5fd09ef28a3a.png)

こいつでした。

自分のXcodeの設定だとプロジェクトごとにDerivedDataが作成されるようになっていました。

# 修正方法
### まず削除
いま作成されているDerivedDataを全て削除します。

### プロジェクトごとに作成されないようにする
① 「Xcode」を選択します。
② 「Settings…」を選択します。
![スクリーンショット 2022-12-07 19.52.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1f238fe8-7d8b-1e76

元記事を表示

【備忘録】PushKitのdidUpdateがどうしても呼ばれない場合の対処法

結論

アプリのプロジェクト名 → Singing & Capabillitiesから、

Push Notificationが追加されているか確認する。

追加されていなければ、右上のプラスボタンから追加する。

元記事を表示

AppsFlyerとそのアトリビューションの仕組み

この記事ではAppsFlyerと、その基本的な機能であるアトリビューションについて解説しています。

## AppsFlyerを一言で言うと・・・

[AppsFlyer](https://www.appsflyer.com/ja)はモバイルアプリのデータを収集・整理し、「アトリビューション」を行うことで、広告の効果を統一的に評価するためのプラットフォームを提供するサービスです。
このようなサービスは、モバイル計測パートナー(MMP; Mobile Measurement Patner)という名前でも知られていて、AppsFlyer以外の類似のサービスとしては adjust, branch, Kochava, singular, tenjin 等が挙げられます。
この中で、グローバルシェアがNo.1のサービスがAppsFlyerになります。

![AF-logo_Horizontal.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73759/eeb0ed79-45cd-6ea0-b1d6-000645

元記事を表示

【SwiftUI】明示的アニメーションと暗黙的アニメーションを理解して使い分けよう

この記事はand factory.inc Advent Calendar 2022 7日目の記事です。
昨日は @chitomo12 さんの [ライブラリ管理をCarthageからSwiftPackageManagerに移行する](https://qiita.com/chitomo12/items/78ab3ce66fda8300c5bf) でした。

## はじめに

SwiftUIでアニメーションを使っていると、
アニメーションの表現に二種類あることはすぐにわかりますが、
意識的に使い分けるには少々学習が必要だと思います。

SwiftUIのアニメーションをキャッチアップする過程で大事なことだなと思ったので下記の2つのアニメーション

– “`animation(_:value:)“`(暗黙的アニメーション)
– “`withAnimation(_:_:)“`(明示的アニメーション)

についてサンプルコードを交えながらまとめていこうと思います。

## 暗黙的アニメーション

[animation(_:value:)](https://developer.apple.co

元記事を表示

iOSアプリ開発で始めるLint駆動開発

私がコードレビューをするとき、文字や文体の誤りや不備はあまり重視していません。それらを確認するのは IDE や静的解析ツールの責務として考えているので、人間は API の使い方やアルゴリズムなどを確認すれば良いと考えています(ただ実際は見る場合も多い)。静的解析で解決できる問題は、機械にやらしたい。そのために Lint は整備したい、Linterに指摘して欲しい。本記事は Lint 関連で私がやることを紹介します。

## Xcode

開発を進めていくと、非推奨の関数が発生することがあります。いま入れ替える必要はないけど、いつか入れ替えたい。そのときは、Xcode の機能を利用します。

“`swift
@available(*, deprecated, message: “show() を使ってください”, renamed: “show”)
func showDog() {
print(“name: \(name)”)
}

func show() {
print(“name: \(name)”)
}
“`

![01.png](https://qiit

元記事を表示

Flutter×Firestore×FCM(iOS)で簡易的なトーク通知

# はじめに
こんにちは、とろろです。ととろじゃないです。
Life is Tech!でメンターをしており、普段は iPhoneプログラミングコース と Webサービスコース を担当しています。
最近は学生ベンチャーの企業でエンジニアもしていて、 そこで**通知付きトーク機能** のついたiOSアプリを(超短期間で)作ってほしいと言われたので、爆速で開発するために **Flutter × Firestore × FCM** をフル活用した経験があるのですが、今回の**Advent Calender**ではその技術の用法についてまとめていこうと思います。
なお、本記事の解説の中心はトーク通知機能の実装であり、チャット機能のDB構成はコーディングの方法に依るため今回は簡易的な設計となっております。

# 開発環境(使用ライブラリ) / DB構成
– Flutter
– Firebase(Firestore)
– FCM(Firebase cloud messaging)

Firebase導入やFlutterのセットアップの方法は省略しますので、次のページや記事を参考にしてみてください。

元記事を表示

始めてのiOS

初めてiOS開発環境はmacOS上で導入した。
 
今一歩、iOSでアプリを作る気力が起きなかった。

当時は、iPhoneは使っていたが、Line機材としてだけだった。 

ブラウザでもあまり入力をすることがなかった。

最近、スマフォだけで仕事をしようとした。 

一覧:携帯計画者日記(0)

https://qiita.com/kaizen_nagoya/items/005d38c6f55c85570e74
 
以前より操作方法は慣れてきた。 
仕事で使えるところまで来ていない。 

Siriも少し使った。声がでなくなり、少し利用から遠ざかった。

iOS(iPhone)を何のためにどう使うかが見定まっていない。

初めてiOSのプログラミングをした時は、macOSとの共通部分にしか興味がなかったのが敗因かもしれない。

# 50歳からのプログラミング言語入門。docker(152)

https://qiita.com/kaizen_nagoya/items/5c7cec79cb3b15237076

Objective Cの勉強する時に、IOSとmacOSに共通のアプリ設計を

元記事を表示

【SwiftUI】@AppStorageってまじ便利

# はじめに
iOS14から使用できる@AppStorageがまじで便利なので知らない人には知ってほしい!

# @AppStorageとは?
SwiftUIの@AppStorageは、アプリの設定や状態を永続化するためのプロパティラッパーです。これを使用することで、アプリを終了したり再起動したりしても、その設定や状態を保存したままにすることができます。使用するには、プロパティを@AppStorageプロパティラッパーでラップし、そこに対してアプリ内での設定や状態を保存したい値を代入するだけです。

ChatGPTに書かせてみました笑
たぶんあってますね笑

# 実装
### 基本的な使い方
これだけで値がUserDefaultsに保存されます。
値を変えた時点でUserDefaultsに保存されます。
“`swift
@AppStorage(“fontSize”) var fontSize: Int = 15
“`

### AppGroupで使う
このようにすることでAppExtensionでもUserDefaultsを共有することができます。
“`swift
@AppSto

元記事を表示

OTHERカテゴリの最新記事