iOS関連のことを調べてみた

iOS関連のことを調べてみた

iOSアプリのリリースで躓いたこと・・

# 概要
実務ではともかく、個人的にモバイルアプリをリリースするのが初めての際
躓いたことが多かったです。
この記事では躓いたことの備忘録として記録しています。
(一部愚痴みたいにもなってますが・・・)

皆さんがリリースする時は色々躓かないよう、この記事が
役立てば嬉しいです!

# Apple Developer Programで躓いたこと
まずは「Apple Developer Program」に登録することになりますが、
登録するだけで私は1週間かかりました。。

まずはそこで躓いた点のご紹介です!

https://developer.apple.com/jp/programs/

## Webで登録すると上手く行かなかった
下の画像の通り、Webで登録するのが当たり前かのように
誘導されますが、私の場合Webで登録すると上手くいきませんでした。

![ios-ble-7-7-1200×610.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945342/ba3125b2-bf69-a08c-3

元記事を表示

SwiftUIのTextEditor/TextFieldとキーボードとの間隔を調整

# SwiftUIのTextEditor/TextFieldとキーボードとの間隔を調整する

SwiftUIでTextEditorやTextFieldは、フォーカスが当たると自動でキーボードを避けて上に持ち上がります
デフォルトだとTextEditorやTextFieldのコンポーネントの底部とキーボードの上部には隙間がありません
このコンポーネントの底部とキーボードの上部を隙間を調整しようとした際に、思いの外ハマったので備忘録です

| デフォルト | 期待動作 |
| :-: | :-: |
| ![image 89.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214313/3e408dfe-0dbd-45d4-44a5-8830c2ffbb83.png) | ![Frame 298.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214313/bb826f5f-cf91-4ffd-5a66-edd3b46217ea

元記事を表示

iOS17でPHPhotoLibrary.authorizationStatusの結果が変わっていた話

# iOS17でPHPhotoLibrary.authorizationStatusの結果が変わっていた話
iOS17から写真へのアクセスの権限が **「選択した写真」** から **「制限付きアクセス」** に変更されました
この変更に伴いPHPhotoLibrary.authorizationStatusの結果が一部変わっていた話です
小さい変更なので、ほとんどのアプリは影響を受けていない印象です

# 変わっていた箇所
`PHPhotoLibrary.authorizationStatus(for: .addOnly)` の結果が
* iOS16の **「選択した写真」** の場合、 **.limited** だったのに対して
* iOS17の **「制限付きアクセス」** の場合、 **.authorized** に変わっています

他の権限の「フルアクセス(旧すべての写真)」や「写真の追加のみ」、「なし」の場合、`PHPhotoLibrary.requestAuthorization(for: .readWrite)` で権限確認した場合の結果に変更はありませんでした
また

元記事を表示

【Xcode/Swift】たかがログ、されどログ、素晴らしきos.Logger

# はじめに
iOS(Swift)では複数ログ出力する方法がある。
最新バージョンのXcodeを使用して検証してみようと思う。

# 前提
| 項目 | 内容 |
|:-:|:-:|
| Mac OS | Sonoma 14.5 |
| Xcode | 15.4 |
|使用言語 | Swift (バージョンは5) |

# 結論
いきなりですが、ログ出力はos.Loggerを使ってください!!
これが便利すぎるので、他のログ出力メソッドは使う必要ありません:thumbsup:

# ログの種類
## print
 昔からあるシンプルなログ出力メソッド。
 タイムスタンプは自動では出力されないが、他言語と同じ使い方で出力可能。

## NSLog
 これも思いっきり昔からあるログ出力メソッド。
 自動でタイムスタンプが出力される。

## debugPrint
 これもシンプルなログ出力メソッドで、Debug時の効率が良い(らしい)

## os.Logger
 勝ち、圧倒的勝利、便利すぎる。
 Xcode15からoslo

元記事を表示

【SwiftData】SwiftDataプロジェクトのテンプレートを解説する

# この記事は何?

XcodeのiOSプロジェクトについて、ストレージ設定で「SwiftData」を選択した際のテンプレートコードを解説する。

> 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

元記事を表示

【SwiftData】Query with dynamic properties in a View

結果を表示する子 View にて。

“`swift
struct UserListView: View {
@Query var users: [User]

init(sort: SortDescriptor) {
_users = Query(sort: [sort])
“`
こういうことですか。

# 🧑🏻‍💻 参考

【SwiftData】@Query の検索条件や並び順を変更する

元記事を表示

【CreateML】画像分類モデルを作成して、bravesoftキャラクター画像分類アプリ作成してみた!

初めまして!
bravesoft株式会社でiOSエンジニアをしている永井です。

最近、Visionフレームワークに触る機会があり、機械学習機能は「面白い!」と個人的になりました。もっと追求するべく、Appleの機械学習から画像分類というのを見つけたので今回は「CreateML」についてのモデル作成からアプリの組み込み/実装までの記事となります。

この記事では、bravesoftの自社開発にあるキャラクターを分類していきます。

## この記事で得られるもの
・CreateMLの基礎知識
・画像分類モデルについて
・モデルの作成方法
・モデルのアプリ組み込み

## CreateMLとは
macOS向けに開発された機械学習モデル構築フレームワークです。GUIベースのツールで、テキスト分類や画像分類や音声分類などのタスクを簡単に実行できます。Swiftとのシームレスな統合が特徴で、最適化されたモデルを生成し、Core MLでの統合も容易で作成したアプリに簡単に組み込むことが可能です。

公式サイト
https://developer.apple.com/jp/machine-lear

元記事を表示

Flutter案件待ち間の冒険:アプリ模倣チャレンジ – 第1章「時計」アプリ 世界時計編

## 世界時計のヘッダーを作ってみよう!
まずは世界時計の顔となるヘッダー部分から攻略開始だ!

![スクリーンショット 2024-06-21 11.13.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147814/4b9e9fb7-c6b6-5979-cd87-964a48109561.png)

### スクロールで現れるタイトル
iPhoneのデフォルトアプリと同様に、ヘッダーのタイトルはスクロールに応じて表示されるように実装したぞ!
![Jun-21-2024 11-19-14.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147814/b6e8f3cb-6d9b-4c45-12fd-791c26061031.gif)

### ボタン配置で迷宮入り!?
ヘッダーにボタンを配置するのも一苦労だったんだ。レイアウト調整はまるで迷宮をさまようよう…。でも、Flutterのレイアウトウィジェットを駆使して、な

元記事を表示

【CSS】一部のスマホで動画再生中に動画上の画像が見えなくなる問題の解決方法

ウェブページで動画を再生する際、一部のスマホでは、動画の上に配置した画像やボタンが見えなくなることがあります。この問題は、CSSの`transform`プロパティを使用して解決できました。

## 確認環境
– **デバイス**: iPhone X
– **ブラウザ**: Chrome、Safari

## 問題の概要

以下のようなHTMLとCSSを使用している場合、一部のスマホで動画を再生すると、動画の上に配置したロゴや音量ボタンが見えなくなることがあります。

これらのブラウザでは、特にiOSの仕様により、動画要素のレンダリングが他の要素と異なる方法で処理されるため、このような問題が発生するようです。

### HTML

“`html

元記事を表示

iOSにおける画面サイズとインターフェースのバリエーションを探る

### はじめに

iOSアプリ開発では、多様な画面サイズに対応する柔軟なインターフェース設計が重要です。

### 記事の目的

“wC”, “wR”, “hC”などの値に戸惑ったことはありませんか?この記事を読むと、Size Classの概念や、インターフェース設計での利用方法、そしてあらゆるデバイスで適応するユーザーインターフェースを作成するためのヒントを理解できるようになります。

### 概念

#### 1. Size Class

**Size Class**は、iOSで異なる画面サイズに対応するためのシステムです。画面サイズを次の2つの軸に分けて管理します:

– **横幅 (Width)**
– **縦幅 (Height)**

各軸には2つのタイプがあります:

– **Compact**: 小さいサイズ (例:縦向きのiPhone)
– **Regular**: 大きいサイズ (例:横向きのiPad)

例:横向きのiPadは、横幅と縦幅の両方がRegularなSize Classを持ちます。一方、縦向きのiPhoneは横幅がCompactで縦幅がRegularな

元記事を表示

Flutter × symbol-sdk

# はじめに

こんにちは。だい(@ishidad2)です。
晴れ時々Symbolということで久々にSymbolネタの記事を書いていこうと思います。
今回は@Toshi_maさんが作成されているFlutter用のSymbolSDKを使ってスマホからトランザクションを飛ばしてみようと思います。
なお、DartやFlutterのインストールなどは事前に済んでいることが前提条件となります。

# 環境

FVMとは、Flutter SDKのバージョンをプロジェクト毎に管理するツールです。
以下を参考に必要であればインストールをしてください。(Flutterのバージョン管理が必要なければ不要です)

https://fvm.app/

以下、私の実行環境です。

:::note warn
これより先の記述は筆者の環境であるMacでの説明になります。それ以外のWindows等では当てはまらない説明があるかもしれません。適宜読み替えてください。
:::

“`bash
% fvm –version
2.4.1

% dart –version
Dart SDK version: 3.3.1

元記事を表示

iOS開発でhttp通信や非同期通信を使おう!

iOSソフトウェアを開発するようになってネットワーク接続を必要になってくるのではないだろうか.例えばHTTP通信や非同期通信をしたいことがあるだろう.

iOSではデフォルトで許可されてるのは`https通信`のみで,http通信は許可されていない.開発中はhttpと通信したいことも多いので,http通信の有効化を行う手順を紹介する.

# 前提条件
– [XCode のインストール](https://apps.apple.com/jp/app/xcode/id497799835?mt=12)
– Swiftで記述します

# iOSデバイスでネットワーク接続許可をする
## XCodeでの設定

> 今回は私用のプロジェクトを使います

まずXCodeの自分のプロジェクトのボタンをクリックする.

次に自分のプロジェクトのターゲットをクリックする.

`info`を選択し,`Custom macOS Application Target Properties`の欄の`+`ボタンを押し,`App Transport Security Settings`を追加する.

`App Tra

元記事を表示

[Swift] タロットカードアプリで画像を自動生成してみた

# はじめに
こんにちは!
先日、以下の記事を書きました。

[Swift & SwiftUIでタロットカードアプリを作る](https://qiita.com/yam_dev/items/871b47c1065f570ff17a)
[[Swift] ホラー画像生成アプリ](https://qiita.com/yam_dev/items/7c09f00c4f2a82fdf7a1)

今回はこれらをマージして、タロットカードの画像を自動生成してみました。
簡易版ですが、動きは良さそうなので共有します!

# 要件
– ボタンをタップすると、タロットカードをランダムに選択する
– タロットカードの名前と意味に沿って画像を生成する
– タロットカードの名前、画像、意味を表示する

# 準備
プロジェクトの作成方法は、[Swift & SwiftUIでタロットカードアプリを作る](https://qiita.com/yam_dev/items/871b47c1065f570ff17a) を参照してください。

User Interfaceは`SwiftUI`を選択しました。

# 実装

Co

元記事を表示

Credential期限切れ対応

# iOS開発時のCredential期限切れ対応

2台のMacで開発していて、期限切れたときの対応方法を忘れるのでメモ。
キーチェーンからP12ファイルを出力出来なかった(グレーアウトで選択できなかった)が、XCODEからやると出来た。

基本の流れは他サイト参考に。
例えば
https://kingmo.jp/kumonos/ios-certificate-profile-renewal/#google_vignette

## やり方

1. メインのMacでリクエストファイルを作成
1. デベロッパーサイトで新しいCertificateを作成
1. CERファイルをダウンロードしてダブルクリックして導入
1. 【ここから】xcodeを立ち上げてXcode->setting->Accounts->ManageCertifigates…
1. 証明書を右クリックしてExport
1. パスワード入力して保存
1. 2台目のMacにcerとp12をコピーして、ダブルクリックで導入

とりあえず、これでどちらのMacでも新しいプロビジョニングプロファイルが使えるよ

元記事を表示

static let について

## はじめに
私は最近プログラミングスクールにて学習をスタートした初学者で、学習していく中で疑問に思ったことや苦労したことなどについて記事を書いております。

知識が浅はかですので、間違っている部分があるかもしれません。
あらかじめご了承ください。

## static let について

‘static let’は、Swiftにおいて定数として使用されるクラスプロパティを定義するために使用されます。この定数は、そのクラス全体で共有され、変更不可であり、最初に一度だけ設定されます。

これにより、変更されることがないことが保証された共有データを提供できます。

“`swift
class Constants {
static let appName = “FamousQuoteGenerator”
static let maxFavorites = 100
}

// 定数にアクセス
print(Constants.appName) // 出力: FamousQuoteGenerator
print(Constants.maxFavorites) // 出力: 1

元記事を表示

Realmマイグレーションエラー

## はじめに
私は最近プログラミングスクールにて学習をスタートした初学者で、学習していく中で疑問に思ったことや苦労したことなどについて記事を書いております。

知識が浅はかですので、間違っている部分があるかもしれません。
あらかじめご了承ください。

また、今回は自分用に残したいと思います。

## Realmマイグレーションエラー

RealmSwiftをPodsインストールしてアプリ開発をする中で、下記のようなエラーが発生しました。

:::note alert
Thread 1: Fatal error: Failed to instantiate Realm: Error Domain=io.realm Code=10 “Migration is required due to the following errors:
– Property ‘QuoteDataModel.quoteLabel’ has been removed.
– Property ‘QuoteDataModel.characterLabel’ has been removed.
– Property

元記事を表示

[Swift] ホラー画像生成アプリ

# はじめに

だいぶ暑くなってきましたね。
これから夏本番ということで、今回は、Swiftを使ってホラーテイストな画像を生成するiOSアプリを作ってみました👻

# 要件

* iOS 14.0以降
* Xcode 12.0以降
* OpenAI APIキー

# 環境構築

1. **Xcodeで新規プロジェクトを作成**

* プロジェクト名: HorrorImageConverter
* インターフェース: SwiftUI
* 言語: Swift

2. **OpenAI APIキーを取得**

OpenAI API ([https://openai.com/index/openai-api/](https://openai.com/index/openai-api/)) でアカウントを作成し、APIキーを取得してください。

# 要件
– 作りたい画像のイメージを入力できる
– 画像生成ボタンをタップすると、ホラー画像が生成される

# 実装

“`swift:ContentView.swift
import SwiftUI

struct Content

元記事を表示

SwiftUI(iOS)におけるクリーンアーキテクチャ

## はじめに

こんにちは。この投稿では、Clean Architecture に基づいた Android アプリケーション開発のために構築したソースコードについて紹介します。

このソースコードは私の個人 GitHub にアップロードしています。[GitHub](https://github.com/samyoney)。

これまで、MVVM、MVC、MVP、TCA などのモデルを使用してモバイルアプリを開発してきましたが、MVVM はテストが容易でメンテナンスも簡単であるため、最も実用性が高いと感じています。特に `use case` の概念は、`user story` から切り出して基本設計を行う際に非常に役立ちます。

## SwiftUI とは何か、そしてなぜ使用すべきか?

SwiftUI は、iOS、macOS、watchOS、tvOS のアプリケーションのユーザーインターフェース(UI)を構築するために Apple が開発したフレームワークです。2019年の WWDC で初めて紹

元記事を表示

【TCA】observe(_:)でトラッキングしている値をクロージャ内で変化させた場合は変更を検知しない

以下のコードで、ボタンをタップしたときにコンソールに出力される値はどうなるでしょうか?

“`swift
// Feature
@Reducer
struct Feature {
@ObservableState
struct State {
var flag = false
}

enum Action {
case buttonTapped
case finished
}

var body: some ReducerOf {
Reduce { state, action in
switch action {
case .buttonTapped:
state.flag = true
return .none
case .finished:
state.flag = false

元記事を表示

アプリ紹介(2023-10) ~初めてのmobile

# 目的
apple developerの有効期限が切れたため、紹介程度に記載。
# 技術stack
– ReactNatife(firebase)
– firebase(storage ,firestore,authication)
![](https://storage.googleapis.com/zenn-user-upload/57581fb3f90d-20240617.png)
# github
https://github.com/nagisa599/menmenMobileApp

https://github.com/nagisa599/MenMenWebApp
# 内容
## ログイン,新規登録
#### apple,google,メールアドレスの

## ユーザ登録

  • OTHERカテゴリの最新記事