- 1. [Swift] iOS UIKitプロジェクトでPreviewを簡単に使う方法
- 2. 非同期処理まとめ(swift)
- 3. iOSアプリでスクショをトリガーにする方法
- 4. Flutter 2.5.x 環境をmacOS上に構築する(XcodeとFlutterの複数バージョン対応版)
- 5. Firebase Cloud Messaging証明書更新
- 6. 今更ながらUIViewControllerからUIViewを分離したModel-View-ViewControllerという考え方
- 7. 【Unity】スマホXR開発の現在について
- 8. Make sure you’re running a packager server or have included a .jsbundle file in your application bundle.の対処法
- 9. SwiftUIに関する非推奨のmodifierとその代替を一覧にしてみた
- 10. [Flutter] iOSのビルド時に Can’t load Kernel binary: Invalid kernel binary format version. のエラーが出た時の対処
- 11. Let’s Encrypt証明書を使ったメールサーバからの送受信がiOSでエラーになる場合の対処方法
- 12. 単位換算アプリの作成(swift)
- 13. Cocos2d-x v4への移行 iOS編
- 14. Xcode13 (iOS15 SDK) 対応で UITabBar を修正した際にバッジ表示が崩れた場合の対処法
- 15. Xcode(12)アイコン早見表
- 16. YAHOO! JAPAN Digital Hack Day 2021 参加レポート(チーム「あぐりメタル」)
- 17. CombineとVIPERでアプリを構築する
- 18. 抵抗値のカラーコード表は二度と見たくないので、PyTorchでリアルタイムに物体検出をして抵抗値を計算してくれるスマホアプリをリリースしてみた
- 19. 【Swift】MVPアーキテクチャについて
- 20. アニメーションライブラリ「Comets」を使ってみた
[Swift] iOS UIKitプロジェクトでPreviewを簡単に使う方法
XCode preview はUIの変更点を容易に見ることができる機能で、SwiftUIでは簡単に使えます。
私は今度、[UICollectionViewCompositionalLayout](https://developer.apple.com/documentation/uikit/uicollectionviewcompositionallayout)を勉強しながら、
UIKitでXcode Previewを書いてみたいと思いました。
今回の掲示板ではiOS UIKitプロジェクトでPreviewを簡単に使う方法について紹介します。
## UIViewController
“`swiftimport UIKit
#if canImport(SwiftUI)
import SwiftUI@available(iOS 13.0, tvOS 13.0, *)
public struct UIViewControllerPreview: UIViewControllerRepresentable where Content : UIViewCon
非同期処理まとめ(swift)
#非同期処理とは
ある処理を実行中に別の処理を止めないこと処理を非同期処理という。
swiftではスレッドを利用して非同期処理を実現する。スレッド:CPUにおける最小の実行単位。
スレッド数はCPUが担当できる仕事の数。![非同期処理イラスト.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1261100/f20f47c2-d3da-6753-3d7c-5a01c265456c.jpeg)
#どんな場面で非同期処理が必要?
アニメーションやサーバーとの通信など、時間がかかる処理・重い処理などに使用します。#マルチスレッド処理
通常プログラムはメインスレッドという単一のスレッドから処理を開始するが、別のスレッドを作成して別の処理を実行させることができる。!!ただし、iosにおいてユーザインターフェイスに関わる処理は通常メインスレッドで行われる!!
しかし!!マルチスレッドは正しく実行しなければ下記の深刻な問題が
iOSアプリでスクショをトリガーにする方法
# はじめに
AmazonPrimeやNetflixでスクリーンショットをとると、黒塗り画面が保存されますよね。
今回はその実行方法が気になり調べたので、記事にまとめました。# 方法
`userDidTakeScreenshotNotification`っていう機能を使えば、
スクリーンショット後に処理を実行できるみたい。# 実装
“`ViewController.swift
import UIKitclass ViewController: UIViewController {
// スクショ時、黒塗りするためのView
@IBOutlet weak var filterView: UIView!override func viewDidLoad() {
super.viewDidLoad();// 黒塗り画面を非表示
filterView.isHidden = false;NotificationCenter.default.
Flutter 2.5.x 環境をmacOS上に構築する(XcodeとFlutterの複数バージョン対応版)
# なぜこの記事を書いているか?
自分の参画していたプロジェクトで、FlutterおよびXcodeのバージョンの違いに悩まされていたので、違いを吸収する方法は無いかと色々調べていたら以下の方法にたどり着きました。その備忘録です。
# 環境(2021/10/03現在)
– MacBook Pro (Intel Mac)
– macOS Big Sur (11.6)
– Flutter (2.5.2)
– Android Studio (Arctic Fox | 2020.3.1 Patch 2)
– Xcode (13.0)# インストール
## Homebrew
今回は色々な物をHomebrewでインストールするので、以下を実行します。
“`bash
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`## Google Chrome
なにはともあれ、Chrome。
“`bash
brew install –ca
Firebase Cloud Messaging証明書更新
しばらく忙しくて自作アプリを放置していたらAPSの有効期限が残り3日を切っていましたw
APS証明書の更新がてら更新手順とFirebaseの証明書更新について備忘録を残そうと思います。# 1. CSR作成
証明書といえばCSRの作成から始まりますね。1. キーチェーンアクセス起動
1. 証明書アシスタント
1. 認証局に証明書を要求
1. 以下情報登録
* ユーザのメールアドレス
* 通称
* ディスクに保存
* 鍵ペア情報を保存
1. 続ける
1. 保存場所を決めて保存
1. 鍵ペア情報はそのまま
1. 続ける# 2. ADPで証明書を作成
1. identifiersから対象のアプリのものを選択
1. Push Notifications -> Edit![スクリーンショット 2021-10-03 16.50.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457333/82599f6f-01f7-808d-c32e-d4693c8aacd4.png
今更ながらUIViewControllerからUIViewを分離したModel-View-ViewControllerという考え方
## まず始めに
本投稿ではUIViewControllerからUIViewを分離して、UIViewControllerをPresenterやViewModelのような位置づけにする考え方を紹介していきます。
昨今ではSwiftUIが実践導入されることが増えてきているため、UIKitの構成について考えることは少なくなっているとは思いますが、UIKitを利用した場合にこういう考え方もできるのだなという1例として読んでいただけますと幸いです。以下のようなサンプルアプリを用いて紹介していきます。
– 検索画面で映画のタイトルを検索すると、一覧が表示できる
– 一覧から映画を選択すると、該当の映画の詳細情報が表示できる動作 | 検索 | 詳細
:-: | :-: | :-:
![sample.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60325/dd6b636f-643e-4f06-7bd9-c5cd31a42aee.gif) | 【Unity】スマホXR開発の現在について# はじめに
昨今はOculus QuestシリーズやPico Neoシリーズなどの非常に安価なVRデバイスが市場に流通し始めたため、AndroidやiOSなどのスマホVRはあまり使われなくなってきました。
しかし、現在でもスマホでできるVRは最も小さいVRデバイスであるため、最も普及しているVR対応デバイスであることには変わりがありません。
その点についてもっと注目を集めてもいいんではないか?と考え、スマホVRの現状について調査してみました。# 開発環境Cardboard SDK
## GoogleVR(GVR)
スマホVRの最盛期で最も人気があったSDKです。
2014年にGoogle Cardboardという段ボールで作られたスマホを差し込むタイプのVRゴーグルが発売されました。
VRデバイスを体験したことがない人でもこのタイプのデバイスを見かけたことがある人は多いのではないでしょうか?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1336886/e12b45e9-6b50-
Make sure you’re running a packager server or have included a .jsbundle file in your application bundle.の対処法
Xcode:13
ReactNative:0.65.1#エラー
iOS simulatorでビルドしようとしたら以下のようなエラーが…“`
Make sure you’re running a packager server or have included a .jsbundle file in your application bundle.
“`####<解決方法>
実機でのビルドを試したときに、AppDelegate.mの一部をコメントアウトした事が原因だった。“`:変更前[AppDelegate.m]
// #if DEBUG
// return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@”index” fallbackResource:nil];
// #else
return [[NSBundle mainBundle] URLForResource:@”main” withExtension:@”jsbundle”];
// #endif
“`
SwiftUIに関する非推奨のmodifierとその代替を一覧にしてみた
## はじめに
SwiftUIもiOS13から登場して今年で3年目になります。
初期の頃から見るとかなり使いやすく、また意図しない動作も減ってきています。
またその過程で非推奨もどんどん増えてきていますので
2021.10.1時点での非推奨と代替の一覧を作ってみました。
また以下公式ドキュメントにもありますので詳細はこちらをご覧ください。[Deprecated Modifiers](https://developer.apple.com/documentation/swiftui/view-deprecated)
## 一覧
|非推奨|代替|
|—|—|
|colorScheme| preferredColorScheme|
|listRowPlatterColor|listItemTint|
|background(_:alignment:)|background(alignment:content :)|
|overlay(_:alignment:)|overlay(alignment:content:)|
|autocapitalization(_:)|textIn
[Flutter] iOSのビルド時に Can’t load Kernel binary: Invalid kernel binary format version. のエラーが出た時の対処
## エラー内容
FlutterでiOSの実機でビルドを試みたときに、とあるエラーが出て一向に進まなくなりました。
コンソールには以下のようなエラーが出ていました。“`
[VERBOSE-2:shell.cc(93)] Dart Error: Can’t load Kernel binary: Invalid kernel binary format version.
“`## 対処法
まずターミナルで`which flutter`コマンドを流す。
“`
% which flutter
~/flutter/bin/flutter
“`
のようにFlutterのファイルディレクトリがわかるので、該当箇所まで行って
`flutter > bin > cache` をまるごと削除してしまいます。その後は、`flutter clean`をすると先程削除したファイルが再度生成されるので、`flutter pub get` をしたらビルドが通りました。
Flutterのバージョンを上げて、そのあとダウングレードをしたあとにこのような減少に陥りました。
以上。
Let’s Encrypt証明書を使ったメールサーバからの送受信がiOSでエラーになる場合の対処方法
# はじめに
無料SSL証明書を発行するLet’s Encryptで従来使用されていたDST Root CA X3証明書が2021年9月30日で使用できなくなり、これに伴い、この証明書で運用していた自身のメールサーバ(Postfix, Dovecot)につき、iOSでのメール送受信(SSL)ができなくなったので対応した。# 結論
1. Let’s Encrypt証明書をいったん削除し、certbot コマンドに “`–preferred-chain “ISRG Root X1″“` オプションを追加して証明書を再作成する
1. PostfixおよびDovecotで、証明書として cert.pem ではなく **fullchain.pem** を指定する# 経緯
– [この記事](https://ssl.sakura.ad.jp/column/letsencrypt-root-certificate/)のように、以前からLet’s Encryptで使用されていたDST Root X3のルート証明書は2021年9月30日で使用できなくなることは以前からアナウンスされていた。
単位換算アプリの作成(swift)
#はじめに
###航空の世界は単位が多い
![83BCF875-DFFB-47F3-91A3-ADFCF12B7C51.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1261100/126eb816-369b-c3eb-0145-7d5e01f73900.jpeg)
>写真はwikipediaより航空業界は日本では普段使用しない単位を多用します。
また使用する機種によっても単位が違いますので換算が必要です。
(例えば、アメリカ製のヘリコプターは燃料の単位にlbsを使うが
日本製のヘリコプターは燃料にkgを使用します)航空単位の例
| | 航空(米) | 通常(日本) |
|:-:|:-:|:-:|
| 高度 | ft | m |
| 重量 | lbs | kg |
| 距離 | NM | km |
| 速度 | kt | km/h |###単位を間違えたことによる事故も発生している
[ユナイテッド航空173便燃料切れ墜落事故](https://ja.wikipe
Cocos2d-x v4への移行 iOS編
cocos2d-x v3.17.2のcpp templateをベースに
v4へのmigrationを行う解説を行っていきます旧バージョンのcocos2d-xからv4へのアップデートに
関心はあるがあまりiOS, Androidには習熟していないよ
という方向けです私の知見が助力になれば幸いです
## [1.確認環境](#Migration-1)
– XCode 12.5.1
– CocoaPods 1.10.2
– CMake 3.15.3## [2.Cocos2d-x v4ダウンロード](#Migration-2)
[github](https://github.com)にgithubに履歴を残していますので
差分や動作の確認にお使いください。cocos2d-x v3.17.2のテンプレートから始めます。
ダウンロードしたcocos2d-xを解凍してフォルダ名をcocos2dに変更後
既存のcocos2dフォルダを置き換えます。cocos2d-x v4 [ダウンロードリンク](https://www.
Xcode13 (iOS15 SDK) 対応で UITabBar を修正した際にバッジ表示が崩れた場合の対処法
## 環境
– Xcode 13.0 (13A233)
– iOS 15.0## 何が起こったのか
Xcode13 (iOS15 SDK) では `UITabBar` に対して、
– 背景色が透過してしまう、適用されない
– タブバー上部のボーダーが表示されないといった問題が発生するため、 [UITabBar.standardAppearance](https://developer.apple.com/documentation/uikit/uitabbar/3198046-standardappearance) や [UITabBar.scrollEdgeAppearance](https://developer.apple.com/documentation/uikit/uitabbar/3750912-scrolledgeappearance) を設定するといった対応が必要となってきます。
具体的には、以下のようなコードです。
“`swift:UITabBar の Xcode13 対応
// 元々の実装
UITabBar.app
Xcode(12)アイコン早見表
#
![xcode早見表.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1261100/b579c3cb-d1b0-1878-e320-406d56f5da2e.jpeg)Xcodeの各アイコンの機能をまとめました。
まだ全部を覚えられていない初心者向けです。
YAHOO! JAPAN Digital Hack Day 2021 参加レポート(チーム「あぐりメタル」)
**@kenmaro**です。
普段は主に**秘密計算、準同型暗号などの記事について投稿しています**。
秘密計算に関連するまとめの記事に関しては以下をご覧ください。> – [秘密計算エンジニアを始めて1年が経った。](https://qiita.com/kenmaro/items/416657efca2ff296169b)
– [秘密計算エンジニアを始めて2年半が経った。](https://qiita.com/kenmaro/items/48059dd60f79e80f5ef8)## 概要
![Screen Shot 2021-09-30 at 15.27.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/519792/5b3b38ad-4239-aa45-a1e4-697734dc1cff.png)
**YAHOO! JAPAN Digital Hack Day 2021 (以下ヤフーハッカソンと書きます。)
にチーム「あぐりメタル」として参加し、開発したプロダクト「Yorimic
CombineとVIPERでアプリを構築する
## はじめに
iOS13以降、Frameworkとして提供されたCombine。
上記のおかげで外部ライブラリに頼らずにリアクティブプログラミングを使うことができるようになり、アプリを構築する上での選択肢の一つとして考えられている方も多いのではないでしょうか?
では、実際にアプリを作る上でどういった形でCombineを使っていくことになるか…
ということで、今回はCombineとVIPERを使って簡単なアプリ作ってみましたので、作ったアプリを元に処理の流れを記載していきます。## CombineとVIPERとは
まずは、CombineとVIPERについて軽く紹介したいと思います。*※ CombineとVIPERの詳細については、今回の本筋から逸れるため、詳細な説明はいたしません。
詳しくは知りたい方は別記事をご参照いただきますようお願いいたします。*### Combineとは
イベントをどのように処理するかを宣言的に記述することができるAPIです。
関数型リアクティブプログラミング(FRP)のフレームワークであり、FRPだと他にはRxSwiftといった外部ライブラリが
抵抗値のカラーコード表は二度と見たくないので、PyTorchでリアルタイムに物体検出をして抵抗値を計算してくれるスマホアプリをリリースしてみた
## これは何
スマホをかざすと、AIがリアルタイムに物体検出を行い抵抗値を判別してくれる抵抗値AI計算機というアプリを作成しました。
【Swift】MVPアーキテクチャについて
#はじめに
MVPは
“Model“
“View(View,ViewController)“
“Presenter“の3つで構成されています。“MVC“では“View“と“ViewController“は分けて考えられていましたが、“MVP“においては“View“として扱われます。
#なぜMVPなのか
“MVC“では“ViewController“の責務が大きくなってしまうため、テストの容易性や作業分担のしやすさといった問題があります。それを解決するためのアプローチが“MVP“です。以下では、“MVP“における役割分担を“MVC“と交えながら確認していきます。(なお今回は“MVP“の中でも“PassiveView“パターンを取り扱います。)
##MVC
![2E0B0170-7948-47E7-BFFB-96A59F001A52.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1170864/961f67fe-ada2-b473
アニメーションライブラリ「Comets」を使ってみた
# はじめに
Swiftのライブラリで「[Comets](https://github.com/cruisediary/Comets)」というアニメーションライブラリがちょっと気になったので触ってみました。流れ星のような表現を簡単にできるライブラリで非常に簡単にアニメーションを実現できるので、その方法を記載します。
# 今回作ったアニメーション
早速ですが、今回作ったアニメーションは以下のようなもので、サンプルに沿ってコードを記載するとサクッと以下のようなアニメーションを実現できました。
![comets01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122007/0b16a6f0-d03a-d54c-0c13-2683e4288b59.gif)# 作り方
## ライブラリのインストール
ライブラリのインストールにはCocoaPodsかCarthageが使えます。“`:CocoaPods
pod “Comets”
“`“`:Carthage
github “cruisedia