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

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

環境移行しつつXCode14からXCode15に移行したらエラー出過ぎて詰みかけた話

## 開発環境
Xcode 15.3
MacBook Air M3

## 環境移行
今まで使用していたMacだと審査に出せなくなってしまう為、新しくMacを購入してもらい環境移行しようとしたら、下記の見慣れぬメッセージが…

`
Building for ‘iOS-simulator’, but linking in object file (/path/.a[arm64][3](alloc.o)) built for ‘iOS’
Linker command failed with exit code 1 (use -v to see invocation)
`

とりあえず、Product->Clean Build Folder を行い、ビルドをかけてみるが解決せず。
意味を調べてみると、
`
iOS シミュレータ」用にビルドされていますが、「iOS」用にビルドされたオブジェクト ファイル (/path/.a[arm64][3](alloc.o)) にリンクされています。
リンカー コマンドが終了コード 1 で失敗しました (呼

元記事を表示

Privacy Manifest対応時の注意点

# Privacy Manifestとは?
2023のWWDCにてAppleが発表したThird-party SDKを対象にした新たなプライバシー宣言ファイルです。これまでApp Store Connect上で設定していたものを拡張したという感じに近いと思います。本記事で細かい説明は割愛します。

# Privacy Manifest対応方法について
現在Flutterで開発を行っているため,下記の記事がとても参考になりました。

https://zenn.dev/wutchy_zenn/articles/0bdc7163508172

基本的には導入しているパッケージをPrivacyManifestに対応しているバージョンまで上げることでよさそうです。

# 空のPrivacy Manifestはつくるな!
Apple Developer Forum内の[この質問](https://developer.apple.com/forums/thread/746481?answerId=782256022#782256022
)を確認してみると, Developer Technical S

元記事を表示

【iOS】iOSアプリの証明書、Profileのあれこれ

# ■ 概要

Apple Developer Program(以下、ADP)における、iOSアプリの証明書関連の仕組みは、
出てくる登場人物や用語も多く複雑で理解するのにも一苦労です。

**当記事はそれらの概要や相関をまとめて、少しでも理解を深めることが目的です。**

# ■ とりあえず覚えたい証明書関連

大枠として覚えておきたいのは、こちらの2つになります。

***① 証明書【 Development / Distribution Certificate 】***
***② プロファイル【 Provisioning Profile 】***

# ■ ① 証明書 【 Certificate 】

### 1. なぜ必要?

信用に値するアプリであることを担保するための仕組みとして必要。
開発中においてもXcodeで実機端末(iPhone,iPad)にアプリをビルドする際には必要。

**「信用に値する」** というのは具体的には、

`・ADPに登録されている正規の開発者により発行された証明書を使用してアプリが作成されたこと。`
`・またアプリが第三者によって改

元記事を表示

SwiftUIのChartsで円グラフや棒グラフを使用してエンジニアの構成比率を作成してみた。

# 概要
iOS16以上から、一部のグラフを簡単に作成できるフレームワークであるChartsが使用できるようになり、さらにiOS17以上からは、円グラフも対応できるようになりデータの視認性を良くできるようになりました!

そんなChartsを使用してみたいとかねてから考えていたので、今回は「エンジニアの構成比率を表示する」という題材でデータを可視化するためにサンプルアプリを実装してみました!最低限グラフを表示できるよう雑に解説していきます!

以下のサンプル動画を作成してみたのでぜひ確認してみてください!

[![Image from Gyazo](https://i.gyazo.com/175c7ec60105f8e20c275a1c53ad57bf.gif)](https://gyazo.com/175c7ec60105f8e20c275a1c53ad57bf)

:::note info
説明すること
– ChartsのChart構造体について
– SectorMark(iOS17以上)、BarMark、PointMark、LineMarkについて
– Chartsを使用する上で

元記事を表示

#4 Viewを使って図案を組み合わせる

今回の課題は、ビュー(view)の重ね合わせの特徴を活用して図案を描くことでした。私が選んだテーマは、『ハウルの動く城』に登場するキャラクター「カルシファー」です。以下に私の作品を展示します。

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3703986/a83312f7-c231-c273-f266-f39217bce079.png)

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3703986/d29b9b2e-0d4c-eee5-1e24-693f6aa6bd1d.png)

成品は原画と見た目が異なり、似ていないように見えるかもしれませんですけど(笑)
もう一度挑戦する機会があれば、もっと細かいグリッドを加えて、原始的な画像に近づけたいと思います。

元記事を表示

AppleDeveloperProgramの自動更新をアプリで行う

## AppleDeveloperアプリを使用した自動更新の方法
AppleDeveloperProgramはWebで行うと手動更新で値段が高いですが、Apple Developerアプリから登録や更新を行うと年間の料金が安くなり自動更新になります。

個人的に便利だと思うのですが、まだまだ知らない人も多いみたいなので以前個人ブログで書いた方法を転載しておきます。

AppleDeveloperProgram登録の仕方で料金の違い

元記事を表示

iOSのPrivacy対応のトラッキングについて

## 経緯
2024/05/01以降のリリースで必須になるPrivacyManifests対応の中で**Tracking**について理解できなかったため調べました

# ソース
[AppleDeveloper公式](https://developer.apple.com/jp/app-store/user-privacy-and-data-use/#:~:text=%E3%83%93%E3%83%87%E3%82%AA%E3%82%92%E8%A6%8B%E3%82%8B-,%E3%83%88%E3%83%A9%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AE%E8%A8%B1%E5%8F%AF%E3%81%AE%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88,-iOS%C2%A014.5%E3%80%81iPadOS)

# トラッキングする時には
AppTrackingTransparencyを通じてユーザーの許可を取る必要がある
→ 文言は通常通りカスタムできるので、許可をもらいやすい文章にしましょ

元記事を表示

【swift】 Autolayout-基礎編2-

https://qiita.com/hyis/items/a8f3ca6541c1113180bc

前回に引き続きAutolayoutの説明です。
今回は、Alignmentに対するConstraintsの設定手順を説明していきます。


1. プロジェクトを作成し、Main.storyboardを開く。
UIViewを下画像のように置き,grayViewと名付け、背景色をLight Gray Colorに設定しておく。

2. grayViewを選択(下画像①もしくは②)し、下画像③をクリックでメニューを開き、width(下画像④)を240に、height(下画像⑤)を128に変更し、下画像⑥及び⑦にチェックがついていることを確認しEnterを押下し、制約を設定する。

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483508/fd72c7a9-f0af-7b23-a1db-f9ea1195d294.png)

3.下画像のようにgrayViewの周りに赤い線が表示され、Constr

元記事を表示

【SwiftUI】データ管理の基本(Property Wrapper)

# はじめに
`@StateObject` と `@ObservedObject` の注意すべき点を知ったので、この機会に他の主要な Property Wrapper も含めて備忘録としてまとめたいと思います。

# ■ 値型のデータ

## `@State`

– その View にデータを保持
– 外から渡されるデータではないので `private` が良さそう

## `@Binding`

– その View で、親 View に保持されているデータを更新する場合に使う

“`swift
struct SuperView: View {
@State private var value = 0
var body: some View {
SubView(value: self.$value)
}
}

struct SubView: View {
@Binding var value: Int
var body: some View {
// SuperView の value を更新できる
}
}
`

元記事を表示

【知見メモ】SwiftUIでグラデーションを背景色にした時にキーボードの表示でレイアウトが崩れる問題の対処法

# 概要

本記事では、SwiftUIでグラデーションを背景色にした時、キーボードの表示でレイアウトが崩れる問題の対処法を紹介します。

# 問題の挙動

キーボードを表示した時にグラデーションの適用領域が縮んでしまいます。

![Simulator Screen Recording – iPhone 15 – 2024-03-26 at 09.13.22.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368292/e9f820f4-a066-89d0-769b-34049f40ac30.gif)

![スクリーンショット 2024-03-26 9.19.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3368292/a2848e6c-ada3-b7e2-bd58-dbcadb6702fc.png)

## 実装

“`diff_swift
import SwiftUI

struct ContentView

元記事を表示

#3 さまざまな UI コンポーネントの研究

この度はChatGPTを利用して、内容を整理しました。

Segmented Control

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3703986/e37509c4-8b9c-9e1e-32eb-9676a7e73996.gif)

![1-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3703986/c2c8a7b8-fef5-5a50-4765-2ad69dd3badb.png)

Swift における Segmented Control は、ユーザーがいくつかの事前定義されたオプション間で選択を行うことができる UI コンポーネントです。以下は一般的なフィールドです。

Segments(セグメント):

Segmented Control は複数のセグメントを含み、各セグメントが一つの選択肢を表します。
セグメントは動的に追加または削除することが可能です。

Segment

元記事を表示

#2 キーボードを見ずに英語を打つ ― プログラミング学習の第0ステップ

この課題を初めて見たとき、何となく嫌な予感がしました。私はカスタマーサービスをしていますが、実際に仕事でタイピングをする機会はそう多くありません。ほとんどの場合、コピー&ペーストで事足りるからです。そこで、先生の推薦に従って、指摘されたタイピング練習サイトにアクセスしました。最初のうちは、練習過程が非常に難しく感じられました。なぜなら、すべてのタイピング習慣が以前と異なり、どこに手を置くべきか、FキーとJキーの位置を覚え、そして何よりも、最終的にはどうあれ、両手がホームポジションに戻るべきだというさまざまなルールに、これまで私が接したことがなかったからです。約3週間の練習後、私のタイピング速度は分速18文字から徐々に36文字へと向上しました。これもかなりの進歩だと思います。

これからも練習を続け、近い将来、キーボードを見ずに、目を閉じたままでも、自分の考えを文章にできるようになることを願っています。

![火狐截图_2024-03-25T05-06-29.146Z.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

元記事を表示

#1 AppのGIF録画に慣れる

iOSブートキャンプでの学習過程をQiitaに記録していきたいと思います。最初の課題は、シミュレータの録画機能に慣れることでした。そこで、以前に作成したプロジェクトを使ってこの課題を完了することにしました。

それは、私の履歴書アプリです!このアプリは、将来日本の企業面接で使用する予定です。内容には、私が持っているスキルや職務経験などが含まれています。将来的には、自分の履歴書なども追加するかもしれません。

![Simulator Screen Recording – iPhone 15 Pro – 2024-03-25 at 00.19.29.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3703986/498545d3-924a-9add-4821-08e3fddb2dd9.gif)

以下はGitHubのリンクです:
GitHub – liyoway/MyResume

元記事を表示

自動参照カウントARC(Automatic Reference Counting)と弱参照(weak reference)と非所有参照(unowned reference)の比較

## ARCとは(簡単に説明)
自動参照カウント(Automatic Reference Counting、ARC)は、プログラム内で使用されるオブジェクトのメモリ管理を自動化する技術です。ARCは、オブジェクトがどのくらいの参照を持っているかを追跡し、その数がゼロになると自動的にメモリを解放します。

### ARCの例
“`Swift
class Person {
let name: String
init(name: String) {
self.name = name
print(“\(name) の初期化が進行中です”)
}
deinit {
print(“\(name) のインスタンス割り当てが解除されました”)
}
}

var reference1: Person?
var reference2: Person?
var reference3: Person?

reference1 = Person(name: “John Appleseed”)
// John Applese

元記事を表示

【Flutter】QiitaAPIとOAuth2.0を使ってのログイン画面を作成する

## はじめに

みなさんこんにちわ、Flutter学習約2ヶ月の駆け出しエンジニアの*はるさん*です。

ログイン周りの実装を行う際にFirebaseAuthを使うとものすごく簡単に実装できますよね。
しかし企業や案件の全てがFirebaseを使っているわけではありません。
そこで今回はhttps通信を使ってQiitaAPIにアクセスし、OAuth2.0の仕組みを利用してログイン処理の実装を行う方法を書いていきたいと思います。

### 記事の対象者

– OAuth2.0での認証と認可を実装したい方
– https通信でAPIを呼び出す実装方法を学びたい方
– ある程度のアプリ開発経験(iOS,Android,Flutterなど)がある方
– flutterで小さなプロジェクトをいくつか作った経験のある方

### 記事を執筆時点での筆者の環境

– macOS 14.3.1
– Xcode 15.2
– Swift 5.9
– iPhone11 pro ⇒ iOS 17.2.1
– Flutter 3.19.0
– Dart 3.3.0
– Pixel 7a ⇒ Android

元記事を表示

AppStoreのページを開こうとすると「ページを開けません。アドレスが無効です。」と表示される話

単純に知らなかっただけの話ですが、アプリの新しいバージョンがあればストアページを開く処理を実装時のミスのお話です。

通常、各プラットフォームのストアのURLで開くことができます。
iOS(例 code: jp, appID: 999999)
“`
https://apps.apple.com/${code}/app/id${appID}
“`
Android(例 appID: com.example.app_name)
“`
https://play.google.com/store/apps/details?id=${appID}
“`

ですが、今回はiOSの場合だけ、ストアを開こうとすると「ページを開けません。アドレスが無効です。」と表示される問題が発生しました。
調べても、モバイルデータ通信をオンにするとか設定周りの事しか書かれていない為、結構時間を食いました。

結論から言うと、実装を簡易確認(URLが正しいか)する為にシミュレータで行っていたためでした。
恐らくシミュレータには、AppStoreのアプリが入っていないのでそれが原因のようです。
実機では、正しく動作

元記事を表示

【SwiftUI】端末の音量を強制的に変更する方法【iOSアプリ】

[この記事](https://sinn246.wordpress.com/2018/07/12/ios-11-4%E3%81%A7mpvolumeview%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E9%9F%B3%E9%87%8F%E5%A4%89%E6%9B%B4%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E4%BB%B6/)によると、iOSはアプリから端末の音量を操作できないようになっているそうだ。
しかし、[StackOverflow](https://stackoverflow.com/questions/33168497/ios-9-how-to-change-volume-programmatically-without-showing-system-sound-bar-po/50740234#50740234)を参考にすると、無理やりではあるが、音量を変更できるそうだ。その方法と注意点を紹介する。

* Swift 5
* Version

元記事を表示

【超簡単】Flutterでiosのカメラ使ってみた

# 作るもの
flutter初めたての初心者でも作れる簡単な、写真を選択して表示する簡単なiosアプリを作成しますー!

コードはこちら

https://github.com/naoya25/qiita-camera-app.git

# flutterアプリの作成
“`bash
flutter create camera_app
cd camera_app
“`

# image_pickerのインストール
> 公式: https://pub.dev/p

元記事を表示

【Swift】子クラスの実装ミスを根絶するrequired init

# 目次
[1.required initとは?](#1-requiredinitとは?)
[2.実例](#2-実例)
[3.おわりに](#3-おわりに)

# 1. required initとは?
`required init`とは「イニシャライザにのみ使用できる」、「`required init`をもつクラスを継承する(サブ)クラスでは必ず実装しなければならない」と言った性質を持つ修飾子付きのイニシャライザです。
これを実装することにより、複数人で開発する際のイニシャライザの実装忘れの防止や、設計の共通認識を持つことができます。

#2. 実例
早速コードを見てみます。
~~~swift:required.swift
class Human() {
var name: String
var age: Int

required init(name: String, age: Int) {
self.name = name
self.age = age
print(“called Human class ini

元記事を表示

Next.js Learnのアプリをデスクトップアプリ化とスマホアプリ化してみた

# Next.js Learnってなに❓
Googleさんの試験運用中生成AIの解説がわかりやすかったので、拝借🙏

>ReactをベースにしたフレームワークであるNext.jsの諸知識や思想を学ぶことができる無料のチュートリアルです。
このチュートリアルでは、請求書を管理するダッシュボードを作成しながら、Next.jsの基礎を学ぶことができます。
認証機能やDB連携、PaaS(Vercel)の活用など、実践的な内容も含まれています。
JavaScriptではなくTypeScriptを使用します。
また、チャプターの途中には、それまでの説明が理解できているかをチェックする簡単な択一式のクイズが用意されています。

公式のページはこちら👇
[Learn Next.js | Next.js by Vercel – The React Framework](https://nextjs.org/learn)

## 💻 試した環境と該当リポジトリ
[利用したリポジトリ](https://github.com/TakaraShinya/nextjs-dashboard)

“`
Apple

元記事を表示

OTHERカテゴリの最新記事