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

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

【ios 17】画面デザインとユーザーインターフェースの変更点

# 【ios 17】画面デザインとユーザーインターフェースの変更点

## モダンなデザインとアイコンのリフレッシュ
ios 17では、ユーザーインターフェースのデザインが大幅に変更され、よりモダンな印象を与えるデザインになりました。新しいアイコンは、よりフラットでシンプルなデザインになり、見た目が一新されています。また、従来のアプリケーションのアイコンもリフレッシュされ、よりアップデートされた印象を受けるようになりました。

### サンプルコード
`
class iconviewcontroller: uiviewcontroller {
let iconimageview: uiimageview = {
let imageview = uiimageview()
imageview.image = uiimage(systemname: “square.and.arrow.up”)
imageview.tintcolor = .systemblue
imageview.contentmode = .scal

元記事を表示

【ios 17】通知センターとコントロールセンターの改善

## 通知センターの新しいウィジェットとカスタマイズ

通知センターは、ios 17で大幅に改善されました。新しいウィジェットを追加できるようになり、個々のニーズに合わせてカスタマイズすることができます。

新しいウィジェットを追加するには、以下の手順を実行します。

1. ホーム画面で、画面の上端から下にスワイプして通知センターを表示します。
2. 通知センターの下部にある「編集」ボタンをタップします。
3. 「追加」ボタンをタップし、追加したいウィジェットを選択します。
4. 追加したウィジェットをドラッグして位置を調整し、必要に応じて削除や並び替えを行います。

以下のようなウィジェットが追加できます。

– 時計ウィジェット
– カレンダーウィジェット
– 天気ウィジェット
– ニュースウィジェット
– メモウィジェット

ウィジェットのカスタマイズ方法も簡単です。追加したウィジェットをタップすると、サイズや表示する情報の詳細な設定が行えます。

また、ウィジェットの並び順も自由に変更することができます。通知センターを表示した状態で編集ボタンをタップし、各ウィジェットの右側にあ

元記事を表示

【Swift】Swiftのライフサイクル「UIApplicationDelegate」について

# アプリのライフサイクルの基本
Swiftのアプリ開発におけるライフサイクルとは、アプリが起動してから終了するまでの間の状態遷移を管理する大事な概念!

# UIApplicationDelegateについて
– アプリの起動、終了、バックグラウンドへの移行、他の状態遷移などを管理する。

# AppDelegateの主なメソッド
## *`application(_:didFinishLaunchingWithOptions:)`*
– アプリケーションが起動された直後に呼ばれる。初期化や初期設定を行ったりする。

## *`application(_:willFinishLaunchingWithOptions:)`*
– アプリケーションが開始される前の初期段階で呼ばれる。
– つまり、アプリケーションがまだ画面を表示する前に実行されるタイミング。
アプリの初期化前の最後のチャンスってこと。

## *`applicationDidBecomeActive(_:)`*
– アプリがアクティブになり、ユーザーの操作を受け付ける準備が整った時に呼ばれる。
– たとえば、アプリ

元記事を表示

【Swift】IOSアプリケーションの各ステージとイベントについて

# アプリの主要なステージとイベント
アプリのライフサイクルは、いくつかの主要なステージに分けることができる。
各ステージには特定のイベントや処理が関連している。

## ランチスクリーンの表示
– `起動(Launch)`
ユーザーがアプリをタップし、システムがアプリを起動する。
この時点ではまだアプリのUIは表示されてないが、ランチスクリーン(起動画面)が表示される。

– `application(_:willFinishLaunchingWithOptions:)`
アプリが起動し、基本的な設定が行われる前に呼ばれるメソッド。初期化の準備などが行われる。

– `application(_:didFinishLaunchingWithOptions:)`
アプリの起動が完了し、基本的な設定が終了した後に呼ばれるメソッド。

## フォアグラウンド/バックグラウンドへの移行
– `アクティブ(Active)`
アプリがフォアグラウンドで実行され、ユーザーの操作を受け付ける状態。

– `非アクティブ(Inactive)`
アプリがフォアグラウンドでありながら

元記事を表示

超欲張りな(そして挫折必至な)スマホアプリ開発

## Android iOSを同時進行でマスターしたい
今までスマホアプリ開発はやってこなかった筆者でしたが、この度スマホアプリの開発を行うことになりました。開発と言ってもスクラムのプロダクトオーナーとしての立場で、プログラムを直接つくるわけではありません。ただ、作った中身がわかるように、スマホアプリについて学ぼうと思ったのがきっかけです。
Andorid(Andorid Studio:Kotlin)、iOS(Xcode:Swift)
の環境はすでにあり、そこでイチから学んでいこうと思っています。
## どうせならFlutterもやってやれ
個人的興味もあり、併せてFlutterにもチャレンジしてみようと開発環境まで作りました。
## やってきたことを記録に残す
ただ学習してもフィードバックできなければ意味はないですので、何らかの記録に残したいと思っています。例えばブログやnoteでもいいですし、Qiitaでもいいかもしれない。そのなかでQiitaは有力な候補なので今後も活用したい。
## You Tubeの動画で見直すのもありだな
ものを覚えるには、他人に教えるのが一番だというのがあ

元記事を表示

【SwiftUI】MapStyleについて調べた(iOS17)

# はじめに

# 本記事のベースコード
“`swift
import SwiftUI
import MapKit

struct ContentView: View {
// 東京駅の座標
@State private var position: MapCameraPosition = .region(.init(
center: .init(latitude: 35.681236, longitude: 139.767125),
span: .init(latitudeDelta: 0.1, longitudeDelta: 0.1)
))

var body: some View {
Map(position: $position)
.mapStyle( /* ここにスタイルを指定 */ )
}
}
“`

# スタイル
|`.standard`|`.imagery`|`.hybrid`|
|-|-|-|
|![simulator_screenshot_CEE0EE7

元記事を表示

SwiftUI ScrollView の bounces を無効化する (したかった)

## はじめに

iOS の ScrollView には、コンテンツの端までスクロールするとバウンドをするようなアニメーションがデフォルトで実装されています。

参考画像

![ScrollViewDemo.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555559/01aff3c4-9217-6a20-6887-3a22c2cdb290.gif)

しかし、アプリによってはコンテンツの端までスクロールしてもバウンドしないように設定したい場合もあると思います。
その場合、どのように実装すればいいのでしょうか?

### UIKit の場合 (UIScrollView)

`scrollView.bounces = false` を設定することで対応できます。

https://developer.apple.com/documentation/uikit/uiscrollview/1619420-bounces

“`s

元記事を表示

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 SwiftUI

struct ContentView: View {
@State private var isHidden = false

var 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 SwiftUI

struct 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」を選択します。
スクリーンショット 2023-11-24 16 10 42

# おわり
`command` + `1`でも同じ事ができます

元記事を表示

OTHERカテゴリの最新記事