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

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

SwiftUIでiPhoneのバッテリー残量を表示してみる

# はじめに
たまたまTwitterで#swiftuiを検索していたら見つけたので、ちょっと作ってみました。

Flutter環境構築 – 1(Flutter SDKインストール編)

#はじめに
Flutterの開発環境構築の手順について解説していきます。
今回は「Flutter SDKインストール編」です!
今後「Xcodeインストール編」「Android Studioインストール編」「VS codeインストール編」も随時執筆していく予定です。
さらにその後には「シミュレーターでの動作確認編」「アプリ実行編」なども執筆予定ですのでしばらくお待ちいただけると幸いです。
また今回の解説では、私自身がmacOSを使用しているということもあり、**macOS**での手順解説となります。
Windows・Linuxを使用されている方は別途、Flutter公式サイトの[Windows版](https://flutter.dev/docs/get-started/install/windows)・[Linux版](https://flutter.dev/docs/get-started/install/linux) などをご参照下さい。

#「Flutter SDKインストール編」でやること
本記事では、以下の項目を行います。

– Flutter SDKをインストールする

元記事を表示

MonacaからCustom Schemeプラグインがリリースされてた

Monacaより「Custom Schemeプラグイン」がリリースされていました。
https://ja.monaca.io/headline/#entry_5e835238e78885e357efb480

## これは何?
以下記事の通り、WKWebViewでは、file://スキームのローカルリソース(wwwディレクトリ配下のファイル)にXHRでアクセスすることができません。それを解決するためのプラグインの様です。
https://qiita.com/kishisuke/items/d201790aeae2129ff2e3#file%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%A0%E3%81%B8%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B920200323%E8%BF%BD%E8%A8%98

このプラグインをインストールすることで、「WKWebView上においても、ローカルに配置されているリソースへのAjaxアクセスが可能となります」とあります。実際にインストールしてみると、確かにローカルリソース(wwwディ

元記事を表示

1つ以上のProvisioning Profileがインストールできないとは

Provisioning Profileをインストールして、ダブルクリックしたら、

> Failed to install one or more provisioning profiles on the device.
> Please ensure the provisioning profile is configured for this device. If not, please try to generate a new profile.

というエラーが出たときの対処法について。

## 原因

最近Apple Developer上で登録Deviceの整理をしたりしませんでしたか。
あるいはProvisioning Profileの整理など。

登録情報がなにかしら変更されて、
Provisioning Profileの上書きができなくなってしまっている状態です。

## 対処法

すでにMacに保存しているProvisioning Profileを削除して、
再読み込みをしてあげれば良いです。

### 削除すべきProvisioning Profileを知る

元記事を表示

stripe-iosでクレジットカード情報のZIPを非表示にしたい

stripe-iosとは、クレジットカードで決済を行うiOSアプリを作成する上で、
必須と言っても過言ではない素晴らしいSDKです。

![](https://i.imgur.com/LUSf97S.png)

※stripe-ios githubページより。
https://github.com/stripe/stripe-ios

ただ現在、クレジットカードの情報として入力する項目が、

– 番号
– 有効期限
– セキュリティコード(CVC)
– ZIP

の4種類がデフォルトになっています。
ちょっと前までデフォルトはZIP以外の3つだったはずなのに。

**てかZIPってなに!!!!!?????**

と無能な自分は思ってしまったので、これはそんな悩みを解決する記事です。

## ZIPとは

参考: https://www.shineray-ryokou.com/post/zip-code
参考記事をまとめると、以下です。

– ZIP Codeとは、「郵便番号」です。
– 別名、Postal Code。
– ZIP Codeの目的: セキュリティ強化のため。
– 日本の

元記事を表示

Flutterで環境構築からHelloWorld & スプラッシュまでやってみた。【HelloWorld&スプラッシュ編】

お久しぶりです。
多忙な日々を送っていたらもう4月になってました。

今更感がすごいのですが前回の[環境構築編](https://qiita.com/amita/items/2b19bbbecfb48f68673f)からそのまま放置状態だったので
今回は簡単なスプラッシュ〜Helloworldを作成していきましょう。

## 画像を呼び出せるように設定する。
スプラッシュスクリーンで画像を表示しようと思うのでpubspec.yamlにて下記の設定を追加します。

“`pubspec.yaml
flutter:

# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true

# To add assets to your application, add an as

元記事を表示

独自プロパティリスト(plist)を利用する

iOSアプリで独自plist(プロパティリスト)を作って使いたい時のメモ。
※よくある、APIのURLとかその他アプリに特化した設定などに使用
※他の方がわかりやすく書いてくれているのもあるのでメモ程度

## plistの作成
まずはお目当てのplistを作成します。

* File→New→File(cmd+N)で新規作成画面を表示
* Property Listを選択、名前(今回はApp.plist)を決めて作成

作成できたら、適当に値を設定しましょう。
今回はよくあるURLを記載します

## 作ったplistの読み込み
先程作ったApp.plistを読み込むコードが以下になります。

“`swift
var property: Dictionary = [:]
// App.plistのパス取得
let path = Bundle.main.path(forResource: “App”, ofType: “plist”)
// App.plistをDictionary形式で読み込み
let configurations = NSDictiona

元記事を表示

今更ながらReact Nativeに入門してみた①

# はじめに

実は最近、**React Native**なるものに入門してしまいました…。

React Nativeとはなんなのか?といったところの説明から、実際に簡易的なTODOアプリを作成するところまでご紹介できればと思います。

では、早速行ってみましょう〜!

# React Nativeとは何か

React Nativeとは、

**Reactを使って、iOSやAndroidなどのネイティブアプリを開発することができるクロスプラットフォームな開発ができるフレームワーク**です。

公式サイトは[こちら](https://reactnative.dev/)

# なぜReact Nativeで作るか

個人的にメリットだと感じる点はいくつかあります。

1. React(JavaScript)で書ける
2. プラットフォームを意識せず開発できる

普段JavaScriptでバックエンドやフロントエンドを書いている自分にとって、同じような感覚でネイティブアプリも作れてしまうのは非常に魅力的です!

また、本来であればiOSならSwift、AndroidならKotlinな

元記事を表示

Swift4以降のKVOについて

## はじめに
KVOとは`Key-Value Observing`の略で、対象のObjectの値を監視し、変更のタイミングで通知を行ってくれるものです。
とても簡単に特定の値の監視を行うことができますので、今回はその使い方についてまとめてみました。

## KVOの使い方
### 監視の登録方法について
Objectの値の監視を登録するには`observe(_:options:changeHandler:)`を使用します。
各引数の説明を簡単に行います。

“`
func observe(_ keyPath: KeyPath, options: NSKeyValueObservingOptions = [], changeHandler: @escaping (T, NSKeyValueObservedChange) -> Void) -> NSKeyValueObservation
“`

– `keyPath` : `KeyPath`形式で監視したいObjectの値を指定
– `options` : 変更前後、どの値を通知しても

元記事を表示

Xcodeで古いOSバージョンのSimulatorを起動する

XcodeはそのXcodeがリリースされたときの最新のOSバージョンのSimulatorが用意されているが、そのXcodeを使いつつ古いOSバージョンのSimulatorを起動するためには一手間必要なので、その手順をメモしておく

# 環境
Xcode 11.4

# 手順
Xcodeのメニューから Window > Devices and Simulators を選択する

「Simulators」タブを選択することでシミュレータ一覧画面が表示されるので、左下の「+」ボタンをクリックする
![01_デバイスとシミュレータ画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125334/4f023b3f-1793-adf1-389f-3ab3cd71faf8.png)

以下のようなシミュレータ追加画面が表示されるので、「OS Version」をクリックして選択肢を表示する
02_シミュレータ追加画面.png【Swift】CAGradientLayer の透過が濁る

下記ブログの転載です!

【Swift】CAGradientLayer の透過が濁る

iOSにて、**`CAGradientLayer`** を使って透過を含むグラデーションを行った際、濁る現象があったので対応の備忘録。
 

## CAGradientLayer の使い方

*CAGradientLayer* の基本的な使い方については、[こちら](https://developer.apple.com/documentation/quartzcore/cagradientlayer) を参照のこと。
 

## CAGradientLayer に透過を利用すると色が濁る

当然のことながら `CAGradientLayer` はグラデーションを作成するレイヤーです。
「そこで、透過から赤へのグラデーションを作ろう!」と思った時、グラデーションが濁る(中間色がグレーになる)ことに気がつきました。
下記がその時の画像です。

![汚い透過グラデーション](https://rc-code.info/wp-content/uploads/2019/06/alphaGr

元記事を表示

【SceneKit】3Dモデル(アニメーションつき)の再生速度を変更する

# はじめに
アニメーションつき3Dモデルの再生速度をを可変にしたかったので、そのメモ。

# 実行環境
– Xcode 11.2.1
– [MagicaVoxel](https://ephtracy.github.io) 0.99.4
– [Mixamo](https://www.mixamo.com)
– iPhoneXR(iOS 12.1.4)

# やりたいこと
[Mixamo](https://www.mixamo.com)でアニメーションをつけた3Dモデルの、再生速度(テンポ)をゆっくりにしたり、速くしたり、任意に変更してみたかった。

# 再生速度をどこで変更できるか?
読み込んだ3Dモデル(Salsa Dancing.dae)から変換したSCNファイル(salsa.scn)を開いて、ボーンの設定(mixamorig_Hips)を選択すると、右下の「Animation Settings」に「speed」という項目があって、この数値を変更して画面下の再生ボタンを押すと再生速度が変わります(speed:1 が定速)。
![cap01.png](https://qiita-im

元記事を表示

日本で買ったApple Watchで、ECGを使って心電図を撮る夢を見た

タイトルの通り、日本で買ったApple Watch(series4)のECGを有効にしてみました。

“`
この方法は正規の手段ではありません。
2020年3月現在、日本では依然として医療機器認可は下りていません。
“`

**あくまで夢の話です。悪しからず**

※ちなみに脱獄とかそういう類ではありません。

# 結論
できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265811/80ab4c8e-2643-2136-283f-c9ddc9979f7c.png)
↑販売国コードはJ(Japan:日本)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265811/1ceca5aa-cbd3-22c0-b50e-99c56f989e47.png)

# アクティベートする方法

アクティベートの手順です。が、**注意点**。

### 注意点
詳しくは後述しますが、ECG

元記事を表示

MVVMについて簡単なまとめ

## Model
アプリケーションで使うデータの基本的な振る舞いやそれに関するロジックを保持
### 具体的には、
– データ構造の表現
– Web APIとのやりとり
– ローカルデータベースなどへの保存

## ViewModel
– ModelとView、ViewController層の仲介役
– Modelからデータを受け取り、それらをUIに反映できるような形で出力
– View、ViewControllerからユーザーのアクション情報を受け取り、Modelに伝え、Modelからデータを受け取りUIに反映できるような形で出力

## View、ViewController

### View
– UIの表示
– データを表示するようなUIの場合、Controllerからデータを受け取り、UIに反映
– ユーザーインタラクションの認知し、必要に応じてUIを更新する。
– もしくは、そのユーザーインタラクションをした結果、何かアクションをしたいとき、ユーザーインタラクションの情報をControllerに伝達する。
– View層はデータ構造に関する一切のロジックを保持しない。

#

元記事を表示

【Flutter】バグ解決: Bad state: Stream has already been listened to.

## 今回の件のGitHubはこちら
https://github.com/Tetsukick/flutter_BLoc/commit/76748e912be5896f8e998a5a50244fcb77d659b6

## 現象

StreamControllerを使ってBLoCパターンでstatement管理をしていたが、TabBarViewを追加して、
Tabを切り替えて、再度同じタブに復帰した際に画面の表示が崩れるようになりました。

その際のerrorがこちら。

“`
Bad state: Stream has already been listened to.
“`

## 解決策

`StreamController`ではなく、`BehaviorSubject`を使用することで解消

元のソースコード

“`dart:エラー解消前
import ‘dart:async’;

class CounterBloc {
// input
final _actionController = StreamController();
Sink

元記事を表示

iOSのWebViewをMacでデバッグする

# はじめに
以前Webブラウザー作っていた時、一番困ったのが「Safariで動くのにこのブラウザーでは動かない!!」というお問い合わせでした。
そんな時、お世話になった”Webインスペクタ”の使い方を記事にすることで、誰か救われたらいいなーと思い書くことにしました。

# 必要なもの
* Mac端末(当時Yosemiteでやってたので、それなりに古くても大丈夫だと思います)
* iOS端末(当時iOS 8でやってた記憶があるので、それ以降ならできます)
* MacとiOSを接続する設備(MacによってはUSB typeCしかないので変換アダプタだったり必要かと)

# 手順
1.iOSの[設定]アプリでSafariのWebインスペクタを有効化
![Webインスペクタ有効.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96952/63868b3b-6595-44b1-5f3b-71423effc23f.png)

2.MacのSafariで「開発」メニューを表示する
![開発メニュー有効.png](h

元記事を表示

ARKit 3.5のScene Reconstructionサンプルのコードを読む

ARKit 3.5とLiDAR搭載の新型iPad Proが出ましたね。これらを試せるAppleの公式サンプル「[Visualizing and Interacting with a Reconstructed Scene](https://developer.apple.com/documentation/arkit/world_tracking/visualizing_and_interacting_with_a_reconstructed_scene)」のソースコードを読んでみたメモです。

どんな感じのサンプルかはこちらのツイートの動画がよくわかります。

OTHERカテゴリの最新記事