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

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

はじめてのAppsFlyer – (2) iOS SDK実装/iOSシミュレーターでの動作確認

AppsFlyerを利用する場合、計測対象とするアプリにSDKをインストールし実装を行います。
[AppsFlyer Developer Hub](https://ja.dev.appsflyer.com/hc/docs/ios-sdk)に詳細な手順があり、iOSエンジニアの方であれば、特に迷うことなく実装できると思います。

この記事では、はじめの一歩として、Apple Developer Programに登録していなくても簡単にできる範囲で、アプリへのAppsFlyer SDKインストール・実装とiOSシミュレーターでの動作確認までを解説します。

iOSエンジニアではないけど、少しSDK実装を体験してみたい方などに参考になればうれしいです。

# 前提・環境
– AppsFlyer管理画面より、アプリIDとDevキーは事前に取得されているものとします。(参考:[前記事「はじめてのAppsFlyer: (1)アプリを管理画面に追加する」](https://qiita.com/maktag/items/5d3399e2137947bef529))
– Xcode14を利用し、プロジェ

元記事を表示

ARチキン(Swift)

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

## はじめに
先日かわいいチキンを作ったのですがどうせなら AR で表示したいという欲が出てきました:smiling_imp:

[SpriteKitで2D横スクロールゲームをつくろう(その1)](https://qiit

元記事を表示

【SwiftUI】カスタムTabViewを実装してみた

この記事はand factory.inc Advent Calendar 2022 19日目の記事です。
昨日は @arusu0629 さんの[個人開発アプリに Swift Package Manager を導入してみた](https://qiita.com/arusu0629/items/cb4eca682aba05c49a16)でした。

## はじめに
基本的な実装は経験があったので今回は少しアニメーションなども加えたカスタムなTabViewの実装を行ってみました。
– [TabView](https://developer.apple.com/documentation/swiftui/tabview)

## 完成形
![CustomTabView.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951640/4809f634-7dcb-9d98-3bf3-925557ed675b.gif)

## 開発環境
– Xcode 14.1
– iOS 16.1

## TabのModelを作成
`

元記事を表示

【Unity】iOS 向けの Low-level native plug-in interface を利用した Metal API へのアクセスについて調べてみた

この記事は [Unity Advent Calendar 2022](https://qiita.com/advent-calendar/2022/unity) の18日目の記事です。

Unityには [Low-level native plug-in interface](https://docs.unity3d.com/Manual/NativePluginInterface.html) と言う機能が存在しており、こちらを利用することでUnityが内部的に持っている各プラットフォーム向けの低レベルな GraphicsAPI にアクセスすることが出来るようになります。

https://docs.unity3d.com/Manual/NativePluginInterface.html

じゃあ具体的にこれで何が出来るのか?と言うと、例えば今回話す iOS 向けの場合には「**Unityが持つ`MTLCommandEncoder`をフックして追加で描画命令を挟んだり、若しくはこちらを終了させて自身で`MTLCommandEncoder`を追加する**」と言ったことが行えるようにな

元記事を表示

FlutterでKeychain Sharingを実現する方法

# Keychain Sharingとは

– [公式ドキュメント](https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps)

Keychain Sharingを使用することで、異なるアプリ間で情報を共有することができます。
例えばですが、異なるアプリ間で共通のユーザー名やパスワードを使用したい場合において、アプリAでログインする際にユーザー名やパスワードをKeychainの共有領域に保存させ、アプリBにログインする際にはKeychainに保存されている情報を使用して、ユーザー名やパスワードの入力なしにログインさせる
といったことができるようになります。

注意事項として、チームIDが同じプロビジョニングプロファイルでビルドされたアプリでしか上記は実現できません。
当たり前と言えば当たり前ですが、、、

チームIDはプロビジョニングプロファイルから確認でき

元記事を表示

【SwiftUI】動くメンバーシップカードを作成する

# はじめに
昨日、せっかくGlassmorphismのカードのようなUIを作成したのでもっとカードっぽくしていきたいと思います!

https://qiita.com/SNQ-2001/items/04502ac58b196743bad9

# サンプルアプリ
ドラッグでカードを動かすことができるようにしました。
![Simulator Screen Recording – iPhone 14 – 2022-12-18 at 17.49.02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/b267677c-b14e-0ef8-7f2d-e875b4351870.gif)

# 実装
### View
“`swift
import SwiftUI

struct ContentView: View {
@State var x: CGFloat = 0
@State var y: CGFloat = 0
@State var isSheet: Bool = fa

元記事を表示

Generambaを使ってみよう!

## はじめに
弊社では、技術領域というグループがあり、それぞれの技術に特化して何かしらの活動をしています。
私はモバイル領域に所属しており、iOSについて学習したり、実際にアプリ開発を行っています。
そのモバイル領域の一環で、チームでiOSアプリの開発をすることになりました。
お試し的なアプリですので、軽量なアーキテクチャを使おうという話になり、MVPを使って開発を進めていくことになりました。
MVPで開発していく上で、Model・View・Presenterそれぞれのswiftファイルを作成するのはめんどくさいため[Generamba](https://github.com/strongself/Generamba)というツールを使用してswiftファイルを自動生成した時の環境構築について書いていきます。

この記事はTDCソフト株式会社Advent Calendarの18日目です。

https://qiita.com/advent-calendar/2022/tdc
## Generambaについて
GithubのREADMEには、`Generambaは、Xcodeで動作するよ

元記事を表示

Firebase Realtime Database & FireStorageでasync/awaitを利用した簡単な処理実装例の紹介

## 1. はじめに

皆様お疲れ様です。iOS AdventCalendarの17日目を担当させて頂きます、fumiyasac(Fumiya Sakai)と申します。何卒よろしくお願い致します。今週初めに別のAdventCalendarにて、[SwiftUIで作る「Drag処理を利用したCarousel型UI」と「Pinterest風GridレイアウトUI」の実装例とポイントまとめ](https://qiita.com/fumiyasac@github/items/b5b313d9807ff858a73c)という記事も書きましたので、こちらもご覧頂けますと嬉しく思います?‍♂️

以前にお仕事の中でも、Firebaseの機能を活用したアプリ内施策やアプリ内機能を実装する機会も何度かあり、FirebaseについてもSwift Concurrencyにも対応した事で、従来までの処理がasync/awaitを併用してよりシンプルな形で実装できる様になった点は、個人的にも心強く嬉しく思いました。

今回はいつものUI実装関連のTipsとは少し趣向を変えて、Firebaseの機能の中で、これま

元記事を表示

[Swift] 画面遷移時にタブバーを非表示にする

## 前提
MainViewController→TransitionViewに遷移する際に、遷移先のTransitionViewでタブバーを非表示にしたい。
TransitionView→MainViewControllerに戻る際には、タブバーを再表示する。
## 実装内容
navigationViewControllerにTransitionViewをpushする前に、
MainViewControllerのhidesBottomBarWhenPushedをtrueに設定し、
push後にhidesBottomBarWhenPushedをfalseに設定。

“`ruby: TransitionViewに遷移するコード
self.hidesBottomBarWhenPushed = true //push遷移前に設定
self.navigationController?.pushViewController(transitionView, animated: true)
self.hidesBottomBarWhenPushed

元記事を表示

【クソアプリ】傘がいるかどうかを占ってくれます

本記事はクソアプリ Advent Calendar 2022の参加記事になります!

https://qiita.com/advent-calendar/2022/kuso-app

# はじめに
出かける時に雨が降っていたらもちろん傘をさして出かけることでしょう。
一方で現時点では降っておらず、夜の天気が怪しくて傘を持っていくかどうかを悩んだこともあるかと思います。
この時に頼りになるのが天気予報です。
しかしこんなもやもやを感じたことはないでしょうか。
「降水確率30%か。**で、結局傘は必要なの?**」
そうです。
私たちが知りたいのは降水確率ではありません。
**傘がいるかいらないかです。**

今回はこのような不満を持つすべての人の思いを叶えるアプリを作りました。

# アプリの使い方
アプリの使い方は至って簡単です。
ホーム画面がこちら。

ゆめみの次期未経験者向け iOS コードチェック課題をチラ見せ

# 免責事項

本記事はあくまで「チラ見せ」で、本コードチェック課題のリリース時期はまだ未定です。また本記事の内容は正式リリースする際に変更する場合もありますのでご了承ください。正式リリースした時はまたこの記事を編集してお伝えしますので、弊社志望で本コードチェック課題をご希望の新卒や未経験者の方は今しばらくお待ちください。

# モチベーション

弊社の iOS エンジニアコードチェック課題が[変更され](https://speakerdeck.com/lovee/a-brief-description-about-the-new-code-check-for-ios-engineer-in-yumemi-inc)てからはや2年余りが経ちました。おかげさまでこの間多くの方が応募してくださり、弊社の iOS エンジニア採用基準も年々上がってきています。

そんな中また新たな悩みが出てきました。これまでのコードチェック課題は確かに即戦力の中途採用に大きな力を発揮してくれていますが、逆に新卒や未経験者には厳しすぎるのではないか?という問題です。具体的に言うとチームで開発する経験がこれまである

元記事を表示

個人開発アプリに Swift Package Manager を導入してみた

この記事はand factory.inc Advent Calendar 2022 18日目の記事です。
昨日は @y-okudera さんの [Flutterで連続性のある複雑なアニメーションを実装する](https://qiita.com/y-okudera/items/d81715827d01c3509eac) でした。

# はじめに
今回は個人開発しているアプリに Swift Package Manager (以降SPMと記載) を導入した際の記事になります。
これまでは XcodeGen + Carthage を用いており、DataStore層, Domain層, Presentation層の3層を Embedded Framework 化したプロジェクト構成でした。
これらを全て SPM で置き換える事が出来るのでは?と思い移植を試みました。

# 開発環境
– MacBook Pro(14インチ、2021) Apple M1 Max
– Xcode14.1(14B47b)
– Swift version 5.7.1

# XcodeGen, Embedded Frame

元記事を表示

【iOS】SnapKitの概要と実装例

この記事は[レコチョク Advent Calendar 2022](https://qiita.com/advent-calendar/2022/recochoku)の18日目の記事となります。

## はじめに

はじめまして。株式会社レコチョクの長島と申します。
2022年4月に新卒で入社し、6ヶ月の研修期間を経て、今はiOSアプリの開発に携わっています。
音楽はダンスミュージックを中心に、最近は電音部という音楽原案キャラクタープロジェクトの曲をよく聞いています。よろしくお願いします。

現在はOJTとして既存アプリのモックを作成する課題を行っているのですが、その際にSnapKitと呼ばれるライブラリを用い、Interface Builderなしで画面を実装する必要があり、一体SnapKitがどういうものなのかを調べる機会がありました。

今回はそれらを調査して得られた結果として、SnapKitの概要と実装例を記事にしようと思います。

### 動作環境

– Xcode 14.0.1
– SnapKit 5.6.0

## SnapKitについて

### 概要

SnapKit

元記事を表示

[SwiftUI] `overlay` を使って配置に優先度を付ける

# 前提
SwiftUIでは、何も考えずにViewを配置すると基本的にセンタリングされて描画されます。
そのため、

“`swift
HStack {
Text(“Foo”)
}
“`

“`swift
HStack {
Spacer()
Text(“Foo”)
Spacer()
}
“`
は同じ見た目になります。
※厳密には異なっておりbackgroundを指定すると分かるのですがここでは割愛します。

では、左右に別のViewを置くとどうなるでしょうか?

色々なパターンを試した結果がこちらです。
※分かりやすいように`background`を付けています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135304/87b504a1-ffcd-193a-4cc3-5b1d71976b5c.png)

# 本題
上の画像から分かる通り中心に置いたつもりのViewが左右(VStackであれば上下)のViewの大きさに応じてズレてしまうことがありま

元記事を表示

Xcode14時代の証明書管理のベストプラクティス

# はじめに

今回はiOSアプリ開発者の頭を悩ませる証明書管理のベストプラクティスについて記事を書こうと思います。

# 結論

まず結論からですが、xcodeの`Automatically manage signing`を有効にして手動での証明書管理をやめましょう!
(所属する組織の人数規模や管理するアプリ数によって状況が異なるため、一概には言えないので詳細は後述する内容をお読みください)

# 前提

この記事を読むにあたっての前提です。

### 想定読者
– iOSアプリ開発に必要な証明書管理の知識がある程度ある人(証明書についての詳細な説明は記載しません)

### 本記事で紹介する手法がマッチする対象者
– 個人アプリ開発者
– iOS開発者が20人程度以下、管理するアプリが数個ほどの小〜中規模組織
– 組織のApple Developer Programアカウント に 開発者個人のアカウントを紐付けて運用可能なこと
– Apple Developer Programアカウントが開発用、ストア公開用などに分かれて運用していないこと

###

元記事を表示

個人デバイスと会社デバイス向けにBoxモバイルアプリのポリシーを分ける

Boxをモバイルデバイスから利用する際、
**「同じユーザーだけど個人デバイス(BYOD)からアクセスした場合はプレビューだけ、会社デバイスからは編集もできる」**
といった制御をMicrosoft IntuneのMAM (アプリ保護ポリシー)と組み合わせて実現する設定例を紹介します。

# Boxモバイルアプリの種類
Boxのモバイルアプリは大きく分けて2種類あります。

* 標準のモバイルアプリ(以下、”標準アプリ”)
* Box for EMM

Box for EMMをMicrosoft IntuneなどのMDM/EMMソリューションから配信することで、**「アクセス元のデバイス制限 (例:会社デバイスからのみBoxにアクセスさせる)」** や、**「アクセス先のBoxテナント制限 (例:個人用Boxアカウントにモバイルアプリから接続させない)」** することが可能となります。標準アプリはBYODなど個人デバイスに、Box for EMMはMDM/EMMで管理された会社デバイスにインストールされて利用されます。Box for EMMについては以下ドキュメントをご参照ください。

元記事を表示

【SwiftUI】Glassmorphismイケすぎでしょ!!

# はじめに
めっちゃかっこいいGlassmorphismをSwiftUIで再現できたので記録しておきます。
再利用できるようにButtonStyleにしてみます。

背景の画像は[こちら](https://jp.freepik.com/free-vector/wave-background-gradient-design_32439901.htm#query=background%20purple&position=6&from_view=search&track=sph)から使用しました

# サンプルアプリ
![simulator_screenshot_BBF0BA45-6769-4E89-8568-C9895A5F85BB.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/3165fa25-28bc-f642-c832-b563fd3102e2.png)

# 実装
### View
“`swift
import SwiftUI

struct ContentView: View

元記事を表示

flutter_launcher_iconsでandroidとiosのアプリアイコンを登録する

# flutterパッケージ
最近flutterを使っており、なかなか使い勝手が良いと思えてきました。flutterはいろんなパッケージを利用して機能拡張できますが、中でも便利だなと思ったパッケージについて、備忘も兼ねてまとめました。
ちなみに、パッケージとプラグインの違いがわかってなかったのですが、flutterでのパッケージとは「pubspecファイルを含むディレクトリのこと」で、プラグインとはパッケージの一種で「プラットフォームで固有の機能をFlutterアプリに提供するようなパッケージのこと」らしいです。知らずにいると恥ずかしい思いをしそうなのでメモっておきます。

[Flutter/Dart]パッケージ(Package)とプラグイン(Plugin)の違いとは

## パッケージを使ってアプリアイコンを登録
開発を終えアプリをリリースする段階になると、アプリアイコンを用意すると思います。従来の開発環境だと画素数ごとにアイコンを用意したり、osごとに対応したアイコンを用意したりと、なかなか手間がかかる作業だったと記憶してます。
ですが、flutter_launc

元記事を表示

いまさらだけど#fileとかについて(Swift)

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

## はじめに
https://qiita.com/uhooi/items/e5ee95c86f8d6734c6a7

こちらの記事を参考に下記のようなテストを書いているときにふと `#line` みたいなやつって `#file` とかあった気がするけど他にもなんかあったけ?と気になりました:thinking:

“`swift
func testHogeWithFlagMethod() {
let testCases: [(line: UInt, flag: Bool, expect: Int)] = [
(#line, true, 0),
(#line, false, 1)
]
testCases.forEach {
XCTAssertE

元記事を表示

iOS App Dev Tutorialsを読んで実際にやってみた。その3

## 前回の記事
 [iOS App Dev Tutorialsを読んでみた。その2](https://qiita.com/shomiya181210/items/b7b44c8d13e0463c49b1) 前回の記事を読んだ後、この記事をご覧ください。
## 今回の範囲
 [Creatng a card view](https://developer.apple.com/tutorials/app-dev-training/creating-a-card-view)
 第3回目はカードビューを作成する。
## 内容の要約
### 1.カラーテーマを作成する。
– Xcodeを開き新しくModelsという新しい新しいグループを作成する。そのグループで新しくTheme.swiftというファイルを作成する。
– 列挙型[enum]を使用して色のカタログを作る。
“`Theme.swift
enum Theme: String {
case bubblegum
case buttercup
case indigo
case lavender
cas

元記事を表示

OTHERカテゴリの最新記事