iOS関連のことを調べてみた2020年02月08日

iOS関連のことを調べてみた2020年02月08日
目次

XCTestのAssertion一覧、テストファイルの使い方について

XCTestのAssertion一覧と使い方について、頭に入りきっていないので自身のためのカンペを兼ねてまとめました。
筆者が初学者のため、噛み砕いた記事になります。誤字脱字、補足、ここおかしいよ!等歓迎します。

# テストファイルの記入
import XCTest //XCTestのフレームワークをインポート

@testable import モジュール名 //モジュールをテスト用にインポート。モジュールが異なる場合、アクセス識別子がpublic,openでないとアクセスできないが、@testableとすることでinternal(明示的にアクセス識別子が書かれてない場合のデフォルト値)へアクセスできる。

class クラス名: XCTestCase //XCTestCaseを継承

# XCTestのAssertion一覧

Assertion名の引数の最後にあるstringは試験失敗時のメッセージとして、文字列を入れることができる。試験の結果が確認しやすいよう状況に応じて使用する。

## Boolean Assertions
|Assertion名|説明|
|:—–|

元記事を表示

watchOSで〇〇アニメーション

watchOSアプリを開発した際に、いくつかアニメーションをつくりました
その中でうまくいったこと?いかなかったこと?があるので、そのまとめになります

## 基本のローディングアニメーション
実装方法は以下の2つ

1. パラパラ画像をつかう
2. APNGをつかう

### パラパラ画像をつかう
Appleのサンプルコード的にも正攻法といって良いでしょう
特徴としては、

* Asset Catalogを利用できるため、解像度の対応がしやすい
* 画像枚数が増えると管理が手間(あくまでAPNGにくらべて)

です

#### シンプルな Duration 指定の場合

“`swift

// animatedImage: WKInterfaceImage
animatedImage.setImage(UIImage(named: “Bus”))
animatedImage.startAnimating()
“`

`startAnimating`はStoryboard上で設定されたDurationでアニメーションを行います

**Storyboard**

元記事を表示

Unity ARkitのFaceTrackingでシーン遷移するとクラッシュする

#どんな問題か
UnityでFaceTrackingのアプリを作ったら起こった問題
FaceTrackingシーンから他のシーンに遷移するとき、IOS実機だと落ちる
>libc++abi.dylib: terminating with uncaught exception of type Il2CppExceptionWrapper
(lldb)

こんなのを残してさよなら

#解決方法

[ios – Unity Switch between ARKit Face Tracking and Rear Camera? – Stack Overflow](https://stackoverflow.com/questions/51821732/unity-switch-between-arkit-face-tracking-and-rear-camera)

これで治った。
ExampleのUnityARFaceAnchorManager.cs を改変した人は注意

永遠悩んでた。海外質問フォームって偉大だなぁ、

元記事を表示

ECDSA の署名生成・検証を複数言語・環境でどう書くかまとめてみた

## はじめに

楕円曲線DSA (ECDSA) は楕円曲線暗号を利用した電子署名方式で、通信のセキュリティ確保のために広く使われています。様々なプログラミング言語の標準的なライブラリでサポートされているため、言語をまたいで利用することができます。

ただし、実際に言語をまたいで署名生成 & 検証をしようとしてみると API の違いやフォーマット方式によりハマること多々あったため、書き方をまとめておくことにしました。

## この記事に書かれていること

Golang, Node.js, Kotlin, Swift での(できる限り)標準ライブラリを利用した キーペア生成、署名生成・検証方法を記載します。

以降の記述は基本的に ECDSA を前提に書かれています。

**全体的に、エラーハンドリングは省略しているので注意してください。**

## この記事に登場するキーワード

キーワード | 概要
— | —
EC | 楕円曲線、もしくは楕円曲線暗号のこと。
P-256 | 利用する楕円曲線の種類。キーペア生成、署名生成・検証時にパラメータとして指定します。NIST

元記事を表示

CA.swift #11 ~3年後のアプリ設計を考えよう~ 参加報告

大変遅くなりましたが
2020年1月30日に開催されたCA.swiftへ
ブログ枠として参加させていただきました際の報告です。
https://cyberagent.connpass.com/event/155392/

ざっと内容や感想を書かせていただきます。

# Thinking about Architecture for SwiftUI

## 登壇者
[@d_date](https://twitter.com/d_date)さん

[KITASANDO COFFEE – 北参道コーヒー]
(https://apps.apple.com/jp/app/kitasando-coffee-%E5%8C%97%E5%8F%82%E9%81%93%E3%82%B3%E3%83%BC%E3%83%92%E3%83%BC/id1470570852)

## スライド

## 内容

### タイトルはSwiftUIの設計になっているけど
メインは

元記事を表示

iOSシミュレータにプッシュ通知を送ってみる

※本記事は一般に公開されている範囲で書いています。スクリーンショットの添付は自粛します

Xcode 11.4 からiOSシミュレータがプッシュ通知のシミュレーションをサポートしますね。

> Simulator supports simulating remote push notifications, including background content fetch notifications.
[Xcode 11.4 Beta Release Notes](https://developer.apple.com/documentation/xcode_release_notes/xcode_11_4_beta_release_notes/)

シミュレータでプッシュ通知をシミュレーションする方法は2つありますが、両方とも有効な Apple Push Notification Service payload ファイルが必要になります(拡張子は .apns である必要があります)。

“`json
{
“aps”:{
“alert”:”Test”,

元記事を表示

XcodeでiOSアプリを作成中にiOSのバージョンをアップしたらエラがー出た話

** ※2020年1月29日時点の情報になります。記事投稿日時点の環境ではエラーは発生していません。開発中にむやみやたらと新しいものに飛びつくと良くないよという自身の忘備録として、また同じような状況に今後陥った方へ向けて書いています。**

先日Xcode、iOS13.3のiPhone実機で開発をしていた際にiOS13.3.1にバージョンアップするとエラーが発生し、対応に困ったため記事にします。この手の文章を書き慣れていないため、練習も兼ねて・・・

# 結論
iOSのバージョンを13.3に戻すと解決しました。知識がない状態で開発中に環境いじるのは良くないですね。

# 経緯

環境
・macOS Catalina 10.15.2
・iOS:13.3 実機:iPhone11
・Xcode 11.3.1
.Apple Developer無料アカウント

上記環境にてiPhone実機で動作確認をしながらiOSアプリを開発していました。

ここで新しいもの好きの私は
**iOS13.3.1のアップデートが来た!更新!**

**macOS10.15.3も来た!更新!**

**mac

元記事を表示

UnityでiOS実機とmacエディタでBLEを使う

# UnityでiOS実機とmacエディタでBLEを使う
UnityでiOS実機とmacエディタで、CoreBluetoothを使って、Bluetooth Low Energyのデバイスと通信するnative pluginを作成しました。
[Unity Packageを配布しています。](https://github.com/fuziki/UnityCoreBluetooth/releases)
リポジトリはこちら→[https://github.com/fuziki/UnityCoreBluetooth](https://github.com/fuziki/UnityCoreBluetooth)

【iOS】ビューを凹んだように見せて「押した」感を演出する

iOS アプリで、ボタン以外にタップ可能なビューを置きたいケースがあります。例えば、[マンガ向け・ストーリー構成力養成ドリル drill](https://drill.5thfloor.co.jp/) というアプリで以下のようなカードっぽいビューを作る機会がありました。

このカードはタップすると次の画面に遷移しますが、そのままだとフィードバックが何もなく、「ちゃんとタップされた」かどうか不安になりそうでした。

そこで、ビューを視覚的に凹んだように見せることで、「押した」感のあるフィードバックを実現しました。意外と情報がなかったのでメモしておきます。

# ガイドラインを調べる

早速実装…といきたいことろですが、もし「押した」感の演出で公式で推されている表現があるならそれに従っておきたかったので、最初に簡単にガイドライン

元記事を表示

【Flutter】画面下から出てくるピッカー(ドラムロール)を実装する

![picker.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105756/68307a99-a85a-773a-a20e-2966352eb7c2.gif)

Flutter で画面下から出てくる iOS 風ピッカー(ドラムロール)を実装します。

– `Flutter 1.12.13+hotfix.5`
– `Dart 2.7.1`

## コード

“`dart
import ‘package:flutter/material.dart’;
import ‘package:flutter/cupertino.dart’;

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: ‘Modal Picker’,
theme:

元記事を表示

[iOS]今からはじめるドキュメントベースApp

こんにちは。
@gachalatteです。

今回はドキュメントベースAppのお話です。

iOS 11のトピックですので目新しさはありませんが、[Firevault](https://apps.apple.com/us/app/firevault/id1439389822?l=ja&ls=1)の開発で得られた知見を共有したいと思います。

#ドキュメントベースApp

ユーザーが対象を選択し、内容を編集、名前を付けて保存する。iOSでこのようなAppを開発するなら、ドキュメントベースApp(Document-Based App)が最適です。

> UIDocument、Open in Place、Document Provider Extension、iCloud Driveなど、Appleの主要なテクノロジーをドキュメントベースAppに組み込むことで、ユーザーの生産性を高め、素晴らしいユーザー体験を提供することができます。
>
[ドキュメントベースApp – Apple Developer](https://developer.apple.com/jp/document-base

元記事を表示

UIViewのExtensionでフェードイン・アウトアニメーションを実装する

UIViewでフェードイン・アウトをExtensionとして実装しました。

## 環境

* Swift 5
* Xcode 11.2.1

## フェードイン・アウトを行うExtension

UIViewを継承しているクラスなら利用できるので案外便利

“`Swift

extension UIView {

// MARK: Animation

enum Fade {
case `in`
case out
}

/// フェードインアウトを行う
/// – Parameters:
/// – type: fadeタイプ
/// – animation: アニメーションを実行するか
func fade(type: Fade, animation: Bool = true) {
switch type {
case .in:
isHidden = false
UIView.animate(withDuration: 0.3) {
self.alpha = 1.

元記事を表示

#23 Viewの背景を画像にする方法

#はじめに
個人のメモ程度の出来なのであまり参考にしないで下さい.

#環境
Xcode:11.2.1
Swift:5.1.2
2019/11

##part1
`Assets.cassests`に画像をドロップする.

スクリーンショット 2020-02-05 午後10.39.49.png

##part2
`UIImageView`と検索する.

スクリーンショット 2020-02-05 午後10.40.32.png

##pa

元記事を表示

iOSエンジニアがSign in with Appleをサーバーサイドで実装したときに行き詰りを感じたところとか

**Sign in with Apple 実装のデッドラインは4月** ですね☺️
Web/iOS/Androidなど、複数プラットフォームをサポートするためWebViewでログイン機能を実装しているサービスや、外部サービスAPI利用の際に独自のAPIを噛ませているなど、サーバーサイドでSign in with Appleに対応するケースはあるかと思います。

iOSエンジニアであるわたしがサーバーサイドで実装した際に、わかりにくいな〜?と感じたポイントについて記載します。
自分のスキルセットとして、認証・認可、Webの知識はほぼ0でした?
**実装したソースコードをの抜粋を載せていますが、言語はrubyです。**

# やること
今回ご説明する Sign in with Apple の全体のざっくりフローは、

1. Apple Developer サイトでの設定
2. Apple ID サインイン画面表示(Authorizeエンドポイント)、認可コード受取り
4. 認可コードを使い、AppleのユーザーIDを取得(Tokenエンドポイント)

です。

**取得したいデータがema

元記事を表示

Xcode archive時にimport不可のエラー

##はじめに
FlutterでAPL開発を行い、APPLEの申請を行っていたのですが、思わぬところでつまずいたので、備忘録として保存しておきます。
 
通常のビルドは、実施可能ですし、シュミレーターの起動や実機での起動も上手く行ってたにも関わらず、appleでの申請用にarchiveしようとしたら内部で使用しているライブラリをimportできないとエラーになりました。

この[記事](https://i-app-tec.com/ios/app-upload.html)を参考にarchiveしており、エラーになりました。この記事は何も悪くはなく、素晴らしい記事です。

##試した内容
* クリーンして再ビルド。 → NG
* [これ](https://github.com/flutter/flutter/issues/22821)を参考に、Podfileを削除して、`pod install`からやり直し。 →NG
* [これ](https://teratail.com/questions/99422)を参考に、deployment target を変更してみる。 →NG
* [これ](h

元記事を表示

iOS Safariでselect optionにdisplay:noneが効かない対策

表題のとおり、iOSの場合はselect optionにdisplay:noneは効かない。
ググってるとwrapするといいとのことで、たしかにwrapすると何故か消える。
(wrapするタグにはstyleを一切設定していないのに・・!?)
ただ、個々にちまちまwrapさせるのもめんどくさいので
optionにdisplay:noneをしたら勝手にoptionタグをwrapしてくれれば
今まで通りだしいいやんって思った次第。

attrchange.js
https://github.com/meetselva/attrchange/
このjQueryプラグインを利用すると
styleに変化があるとEventが上がってくるので利用させてもらったのが以下のコード。

もう少しやり方あるだろ?って思われそうだけど、ひとまずそこは・・

“`