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

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

プライバシーポリシー Bulldog Market​

# プライバシーポリシー​
#### 個人情報保護方針

Bulldog Market(以下「当グループ」)は、以下のとおり個人情報保護方針を定め、個人情報保護の仕組みを構築し、グループメンバー全員に個人情報保護の重要性の認識と取組みを徹底させることにより、個人情報の保護を推進致します。

#### __個人情報の管理__

当グループは、お客さまの個人情報を正確かつ最新の状態に保ち、個人情報への不正アクセス・紛失・破損・改ざん・漏洩などを防止するため、セキュリティシステムの維持・管理体制の整備・グループメンバーの教育の徹底等の必要な措置を講じ、安全対策を実施し個人情報の厳重な管理を行ないます。

#### __個人情報の利用目的__

お客さまからお預かりした個人情報は、以下の利用目的のために利用いたします。

(1) 広告配信のため
(2) パフォーマンス分析のため
(3) アプリケーション改善のため
(4) ユーザーへのサポート・不具合対応のため

#### __個人情報の第三者への開示・提供の禁止__

当グループは、お客さまよりお預かりした個人情報を適切に

元記事を表示

独り言で解説するCarthageの導入方法

# オンボーディングにて
会社「では、Carthageでこのアプリを作ってください。よろしくお願いします。」
わい「ん、おかのした。(カルタゴ?)」

その夜
わい「はえー、[カルタゴって地名](https://wikitravel.org/ja/カルタゴ_(チュニジア))なんやな」

わい「…そこに行けと?」

# Carthageとは
https://github.com/Carthage/Carthage

↑がCarthageのGitHubやな

このGitHubのAboutを見てみると、

>A simple, decentralized dependency manager for Cocoa

日本語に直すと「**Cocoa用のシンプルで分散化された依存関係管理ツール**」と言っているんや

・・・

さっぱりわからん・・・

Cocoaというのは、MacOS用のアプリケーションを構築するフレームワークのことやから、

要は、Carthageは**たくさん存在するiOSアプリのライブラリを管理するツール**ってことやな

# Carthageのインストール
Carth

元記事を表示

【SwiftUI】PKHUDをSwiftUIで使う

# はじめに
UIKitで書かれたライブラリをSwiftUIで使うシリーズの第2弾です

今回は「[PKHUD](https://github.com/pkluz/PKHUD)」こちらのライブラリです。

PKHUDはアラートライブラリでapple純正アラートのようなUIなのでとてもかっこいいです。

↓ こんな感じ ↓
![PKHUD.gif](https://cloud.githubusercontent.com/assets/1275218/10124182/09f4c406-654f-11e5-9cab-0f2e6f470887.gif)

# 実装
“`PKHUDView.swift
import SwiftUI
import PKHUD

struct PKHUDView: UIViewRepresentable {
@Binding var isPresented: Bool
var HUDContent: HUDContentType
var delay: Double
func makeUIView(context: UIViewRe

元記事を表示

iOSプロトタイプ開発で新たに取り入れたこと5選(2022/05)

最近とあるコンテスト(物は言いよう、ですが)向けにiOSのプロトタイプアプリを作ったので、意識して取り入れたこと5つです。

いずれも新しい発想ではありませんが、今後のiOSアプリ開発で意識し続けたいことです。

# 1. SwiftPM の Package.swift で依存ライブラリ管理

従来 CocoaPods や Carthage でやってきたライブラリ依存関係の管理ですが、今回は SwiftPM でやりました。

今回、アーキテクチャーは MVVM で、View 以外をパッケージに小分けしたんですが、パッケージの場合はプロジェクト直下の場合と違って、依存関係を Package.swift に書けます。
“`Swift
dependencies: [
.package(path: “../Model”),
.package(url: “https://github.com/ReactiveX/RxSwift.git”, from: “6.5.0”),
],
targets: [
.target(
name: “Repository”

元記事を表示

【iOS】Facebook ログインを実装してみる

# はじめに
Facebookログインの機能を実装したく、Meta for Developersへの登録もしてない状況でしたが、一からドキュメントを見てやってみました。

https://developers.facebook.com/docs/facebook-login/overview/?locale=ja_JP

# 環境
Xcode 13.3
Swift 5.6
FBSDKLoginKit 13.2.0

# 作業内容

公式ドキュメント見ながらそのまんまやってみた(ものを書きました)

https://developers.facebook.com/docs/facebook-login/ios

## ディベロッパー登録

未登録でしたのでこちらから登録しました

https://developers.facebook.com/

FacebookアカウントでログインしてContinue
![スクリーンショット 2022-05-18 23.38.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

【Qiita Night】 「新卒エンジニアによるSwift6与太予想」で登壇してきました!

## 1. はじめに
 2022/05/18に開催された[Qiita Night Swift6がもたらす開発者体験を予測しよう!](https://increments.connpass.com/event/246181/)に「新卒エンジニアによるSwift6与太予想」というタイトルで登壇させていただきました。動画、スライドに関しては以下のURLから確認できるので、ぜひご覧ください!
この記事では、登壇内容のまとめやお話しできなかった部分を書いていこうと思います!

https://speakerdeck.com/eiji127/qiita-night-xin-zu-enzinianiyoruswift6yu-tai-yu-xiang

## 2. 非同期処理とジェネリクスのアップデートについて

 まず初めに、非同期処理とジェネリクスのアップデートについて話しました。この2つに関しては、WWDC21の動画やSwift Evolutionなどで、どのようにアップデートされるかについて具体的に言及さ

元記事を表示

【Flutter3.0】キーボードタイプをスクショ付きで改めて。

# はじめに
Flutterも3になりましたので、改めてスクショ付きで種類をまとめようと思いました。

# 環境
Flutter3.0
Xcode 13.3.1

# ドキュメント
https://api.flutter.dev/flutter/services/TextInputType-class.html

## TextInputType.text
“`
TextField(
onChanged: onChange,
keyboardType: TextInputType.text,
),
“`

デフォルトのキーボード。
未指定だとこちらを表示します。

## TextInputType.multiline
“`
TextField(
onChanged: onChange,
maxLines

元記事を表示

TextFieldで数字,英語,記号だけを入力させたい時

# 内容
アカウント登録などのフォームを制作する際に、メールアドレス、パスワードなどの
TextFieldに、入力できる値を制限したい場面を想定しています。

# 方法
### 数字のみ
数字のみは**inputFormatters**で用意されていて、以下の記述を足すことで簡単に設定ができます。
“`Dart
TextField(
keyboardType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly]
)
“`

### 英字,記号など
**FilteringTextInputFormatter.allow()** : 一致するものを許可
**FilteringTextInputFormatter.deny()** : 一致しないものを許可

“`Dart
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp(r'[a-zA-Z0-9@_-.]’)),
],

元記事を表示

iOSの端末識別方法って…(・・?

## リセマラスッカ…
リセマラしようと思いました。(iPhone12)
アプリ消しました。
再インストールしました。

アプリキャラ<「お帰りなさい!!」 ...? (一部、事実と異なる表現をしています) ## なんか覚えられてるんですけど アプリ開発については詳しくないので推測ですが デバイスからデータ削除しているにも関わらず、あちらが私の情報を持っているということは あちらのAPIで取得できる端末情報とゲームデータを紐づけているんじゃあないかと。 取得できる端末情報なんて限られるから変えられるもんは全部変えようとしました。 ### ① Apple ID サインアウトして別アカウントでアプリを再度インストールしましたがダメでした。 ### ② MACアドレス 端末識別といえばって感じで思い当たった。 でもWifiと4Gで変わるよな... 切り替えても覚えられてるし... ###### 後で調べましたが、iOSいくつからか勝手に切り替わるようになっていました。すごい よって違う。 ### ③ IDFV ここからちょっと調べて知った情報です。 Appleさんはアプリが取得

元記事を表示

【SwiftUI】ChartsをSwiftUIで使う

# はじめに
Qiitaのネタも尽きてきたので新シリーズを開始しようと思います。
題して「UIKitで書かれたライブラリをSwiftUIで使うシリーズ」

本シリーズ最初のライブラリは「[Charts](https://github.com/danielgindi/Charts)」です!
Chartsはグラフの描写ライブラリです

# 実装
### Line Chart

“`LineChart1.swift
import SwiftUI
import Charts

struct LineChart1: UIViewRepresentable {
@Environment(\.colorScheme) var colorScheme
func makeUIView(context: Context) ->

元記事を表示

Launch Screenが正しく期待通りに表示されない問題

## 現象
LaunchScreen.storyboardを利用して起動時スプラッシュを表示しようとすると
– ノッチあり端末では、スプラッシュが出るはずの画面が真っ暗になってしまう
– ノッチなし端末では、期待通りに表示される

というややこしい問題が起きていた。

## 原因と解決方法
LaunchScreenにpdfを画像として利用していたことが原因。
これをpng画像に差し替えたところ、どちらでも期待通りに表示されるようになった。
AppleのLaunchScreen Debugガイドによると、LaunchScreenに使う画像はjpg/pngのどちらかでなければいけないそう。

“`
The image in your launch screen storyboard did not originate from the target’s asset catalog. If you are using static images in your launch screen, check to make sure the image originates from the p

元記事を表示

[iOS][Firebase] プッシュ通知のテストメッセージが届かなかった時の対処メモ

# 状況

Firebase公式ドキュメントを見ながらプッシュ通知の設定をした後、ブラウザで Firebase Cloud Messaging のコンソールからテストメッセージを送信してみたが、実機RUN中の iPhone に通知が届かない…

https://firebase.google.com/docs/cloud-messaging/ios/client?hl=ja

# 解決方法

AppDelegateに[application(_:didRegisterForRemoteNotificationsWithDeviceToken:)](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622958-application)を書いたら解決した。

Apple 公式ドキュメントの「デバイストークンをAPNsに登録する方法」というページでこの関数が紹介されていた。

https://developer.apple.com/documentation/usernotifications/

元記事を表示

【SwiftUI】アプリ起動広告の表示方法

第0部: [スタートガイド](https://qiita.com/SNQ-2001/items/44f3446ce0966c78641b)

第1部: [リワード広告](https://qiita.com/SNQ-2001/items/253173abefc6f90f86ea)
第2部: [インタースティシャル広告](https://qiita.com/SNQ-2001/items/5590a55324c39582a9ef)
第3部: [ネイティブ広告](https://qiita.com/SNQ-2001/items/7151fdcb8e9f8c2c42c2)
第4部: [バナー広告](https://qiita.com/SNQ-2001/items/9bf389475cb5995469a0)
第5部: [アプリ起動広告](https://qiita.com/SNQ-2001/items/75ce24982bf418c52349) ← イマココ

# はじめに
AdMob広告シリーズ第5部です
今回は[アプリ起動広告](https://developers.google.com/ad

元記事を表示

SwiftUIでダイアログを実装する(例:ローディング)

## すべてのコンテンツ上でローディングダイアログを表示
以下の「モデルクラス」と「モディファイア」を導入することで、すべてのコンテンツ上でローディングダイアログを表示します。
* DialogModel.swift
* DialogModifier.swift

## DialogModel
ObservableObjectプロトコルに準拠したクラスです。
これを使用して、ダイアログをアクティブ・非アクティブします。
“`swift:DialogModel.swift
import Foundation

public enum DialogType {
case none
case loading
}

class DialogModel: NSObject, ObservableObject {
@Published var dialogType: DialogType = .none
}
“`

## Dialog モディファイア
DialogModelのdialogTypeに基づいてローディングダイアログをアクティブにします
オーバーレイは、ビュー

元記事を表示

?インスタふうの画像選択を使いたい! YPImagePicker ?

# 使い方

Swift Package Managerで以下を加えます。

https://github.com/Yummypets/YPImagePicker.git

Info.Plistで Photo Usage Description と Camera Usage Description を追加します。

“`swift
import YPImagePicker
“`

“`swift
var config = YPImagePickerConfiguration()
config.library.maxNumberOfItems = 10
let picker = YPImagePicker(configuration: config)

// 以下で画像や動画を選択したときの挙動を記述

picker.didFinishPicking {

元記事を表示

FlutterでiOSのソースを呼び出す

押したら文字が変わるだけのシンプルなものです。ただFlutterではなくiOSのソースを呼び出しています。画面は下記。
Simulator Screen Shot - iPhone SE (3rd generation) - 2022-05-24 at 09.07.17.png Simulator Screen Shot - iPhone SE (3rd generation) - 2022-05-24 at 09.07.19.png

ソース

元記事を表示

Swiftで特定のメソッドをClosureにしたくなった時

例えば以下のような関数があったとします。

“` swift
func 関数名() {
長い処理
}
“`

このメソッドを使い回した時に特定の箇所ではUI処理が終わるまで待機する必要が出てきた時などに

“` swift
func 関数名(comp: (() -> Void)? = nil) {
長い処理

// comp!()にすると呼び出さない場合にクラッシュする(後述)
comp?()
}
“`

## 呼び出し方

“` swift
override func viewDidLoad() {
// 待つ必要がない場合
// comp!()にしてるとここでクラッシュ
関数名()

// 待ちたい時
関数名 {
//待った後に行いたい処理
}
}
“`

もし以下のような形で書くと

“`swift
func 関数名(comp:

元記事を表示

【Swift】半円グラフの作り方

# はじめに
Swiftのグラフ描写ライブラリと言えば「[Charts](https://github.com/danielgindi/Charts)」ですよね。
そんなChartsで半円グラフを作る機会があったのでアウトプットとして記事にしておきます。

# 作るもの
GitHubリポジトリの使用言語グラフ
(今回は[こちら](https://github.com/apple/swift)のリポジトリ)

![スクリーンショット 2022-05-23 22.52.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/7fbe9330-f4ff-da45-7ce3-5d736512a584.png)

これを半円グラフで描写します。

# インストール
私はCocoaPodsでインストールしました。
通信にはAlamofireを使います
“`Ruby
pod ‘Charts’
pod ‘Alamofire’
“`

# 実装
### Storyboardの設定
Viewを配置します

元記事を表示

【Swift】数字の省略表記

# 数字の省略表記とは?
![IMG_0372.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/de73c8f7-59bc-f9b7-4e10-dfc4f9aa070d.jpeg)

SNSでフォロワーの数が省略されている事があります
正直、日本では使わないと思うのでぱっと見ではこれが何桁の数字なのか分からないと思います。

簡単に説明すると
**1K = 1,000**
(000が1個ならK)

**1M = 1,000,000**
(000が2個ならM)

このような法則があります。

数字から省略表記に変換する拡張を作る機会が合ったので共有したいと思います。

# 作ったもの
`1.0K`のような場合は`.0`を削除しています
“`swift
import Foundation

extension Int {
func calcNumericalValue() -> String {
if self >= 1000000 {
l

元記事を表示

Unityのマルチプラットフォームビルドスクリプトではまりがちなこと(特にiOS)

# はじめに

この記事は以下のような問題をかかえる人向けです

* スクリプトを利用したマルチプラットフォームビルドに手を染めている
* プラットフォームの切り替えとビルドの開始をEditorスクリプトで行おうとしている。
* スクリプトからプラットフォームを切り替えたときに、Unityでのビルド自体は成功しているのに、おかしなビルドができたり、ビルドが失敗したりするケースがある

スクリプトから `defineシンボル` を変更したとき についても同様の問題があるので参考になると思います。

# 環境

Unity2019.4.29f1 でためしています。もしかすると、後のバージョンでは違いがあるかもしれません。

# 結論

忙しい人向けに最初に結論を書きます。

* とあるプラットフォーム向けに正常にビルドするためには、そのプラットフォームに先にスイッチし、しかも、Editorスクリプトを再コンパイルした後でビルドしなければなりません。これができていない場合、異常なビルドになります。イメージとしては以下のような感じです。

  • OTHERカテゴリの最新記事