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

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

FlutterでNFC通信を利用して学生証のプリペイド使用履歴を表示させてみた

# はじめに
 前回[こちら](https://qiita.com/f-nakahara/items/82fefe574a2e5a25182b)の記事でFlutterのnfc_managerを使用して学生証のプリペイド残高を読み込んでみました。
 今回は、残高だけでなく、使用履歴も表示させていこうかと思います。ちなみに、デザインは全く意識せず、必要なデータだけ表示させてるので見た目に関してはシーッ!!!

# 完成形
![gakuseisho.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/600842/edb83bbe-f093-e844-6671-46dadbc2578f.gif)

# やってみる
## 使用ライブラリ
 NFC通信を行うために使用するライブラリは「[nfc_manager](https://pub.dev/packages/nfc_manager)」というものを使っていきます。NFC通信をするためのライブラリは他にもいくつかありましたが、個人的にこちらのライブラリが一番使いやすか

元記事を表示

営業マンが独学でiOSアプリをリリースし、レビュー4.5をもらうまで

営業しながら独学で作ったiOSアプリの話をエンジニアの方にしたところ反響がありましたので、書いてみました。

###何を作った?

タイ語学習iOSアプリ Thai Reading
タイ語の読み方を16のレッスンで習得できるiOSアプリです。
[アップルストアリンク](https://apps.apple.com/jp/app/thai-reading-alphabet-tone/id1445544247?l=en)
Simulator Screen Shot - iPhone 8 - 2020-03-01 at 14.33.00.png Simulator Screen Shot - iPhone 8 - 2020-03-01 at 11.10.04.png

元記事を表示

SwiftUIアプリケーション開発の不足を補うSwiftUIX

# 想定読者
SwiftUIでアプリケーション開発をしようと思っている、もしくは現状が事実的なベータ状態でUIKitやAppKitを使った方がまだ早いと現実的な判断をしているiOS開発者の方

# はじめに
WWDC19でUIKitを利用しないViewフレームワークのSwiftUIが紹介されkeynoteはとても盛り上がりましたが、ベータ版や続くXcodeのリリースを触るにつれて「これはまだ実用に耐えないだろう」と感じ、SwiftUIが成熟するまで技術選定を先延ばしにした技術者の方は多いと感じています。自分も基本的には同じ意見で、大規模なプロダクションコードにおいては導入するつもりはないです。ですが、個人開発においては自分でリスクと時間がコントロールできるため、**問題を承知の上でリスクを取ってSwiftUIを利用したアプリケーション開発を試しています。**動機は単純な興味です。

この記事では、そのような状況の中でSwiftUIにおいて現状の基本コンポーネント不足を解決しようとしている**[SwiftUIX(Extension)](https://github.com/SwiftUI

元記事を表示

Solidity 構造体のパディングを意識して ストレージを効率化

## はじめに

いきなりですが、 [**CryptoKitties**](https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code) の **Kitty** 構造体を見てみましょう。

“`solidity
// The main Kitty struct. Every cat in CryptoKitties is represented by a copy of this structure,
// so great care was taken to ensure that it fits neatly into exactly two 256-bit words.
// Note that the order of the members in this structure is important because of the byte-packing
// rules used by Ethereum.
// Ref: http://solidity.readthedocs.

元記事を表示

FlutterでNFC機能を使用して学生証のプリペイド残高を取得してみた

# はじめに
 この記事では、Flutterで学生証のプリペイド残高を読み込んだときの手順を書いていくぜ!
 FlutterでNFC通信をして実際に欲しいデータを取得するような記事がまじで見つからない。あっても大体はID取得して終了みたいな感じだったので、Javaで実装している[こちらのサイト](https://qiita.com/na234/items/59558a3bfc8d74c94522)を~~パクっ~~参考にしてバッコリ書いていくぜ!

#

# やってみる
 とりあえず、みんなが早くやれとせかしてくるから、書いていきます。だから落ち着いてくれ!
## 使用するライブラリ
 FlutterにもNFC通信をするためのライブラリはたくさんありますが、今回は「[nfc_mangaer](https://pub.dev/packages/nfc_manager)」を使用していきます。
 ライブラリ読み込み後は忘れないうちに以下のパーミッションも設定しておきましょう

“`AndroidManifest.xml
Flutter の Integration Test のご紹介

## 前提

・Flutter の導入は完了済み
・Integration Test やったことない

## やること

公式でサンプルがあるのでそれをみて進めていきます!

https://flutter.dev/docs/cookbook/testing/integration/introduction

>
1. テストのためのアプリ作成
2. dependency に flutter_driver を追加
3. テストファイルを作成
4. テストのための app ファイルを記述
5. テストを記述
6. テストを実行

## 1. テストのためのアプリ作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165251/9cbd85b3-ef56-5289-f70c-fe4098987889.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165251/c173e8f8-4

元記事を表示

Unityで作ったアプリをApp Storeへ公開するまで

私が通う就労移行支援事業所「GFTD WORKS」にて、ミニゲームコンテストが開催された。
初の開催で、主催側も応募側も調べながら動いていた。
そのときの、Unityで作ったアプリをApp Storeへ公開するまでの覚書を残しておく。
UnityとAppleのアカウントは、主催側が用意したものを使用。
公開作業を行ったのは、2020.01下旬頃。
Version: Unity 2018.4.12f1, xcode 11.3.1

[iOSアプリをリリースする際のプロビジョニングの設定 | 知の壺](https://chinotsubo.com/ios-provisioning-config/)
実機テスト時のsigning設定。developerとdistributionの混合がキモ。

[Bulk Resize Photos](https://bulkresizephotos.com)
スクリーンショットのリサイズに大活躍した。ただし、スクリーンショットの差し替えにはAppのバージョンアップが必要で、「とりあえず全機種間に合わせで突っ込んどいて後でちゃんと綺麗なの撮ろう」と

元記事を表示

UIScreenEdgePanGestureRecognizer が Simulator で反応しない件

# 今回解決したいこと

iOS 7 から追加された `UIScreenEdgePanGestureRecognizer` を使えば、通常のパンジェスチャー(ドラッグジェスチャー)と違って、画面の左端からパンしたときだけに反応するエッジパンジェスチャーを実装することができます。
しかし、なぜかシミュレーターで実行していると、[本当は反応するはず](https://stackoverflow.com/questions/19127383/is-it-possible-to-do-an-edge-swipe-in-ios-simulator) が、反応しない!!!という罠にはまりました。

# 解決法

シミュレーターで、 **ベゼル表示をオン** にすれば画面端からパンすることができます!!!

こう?(ベゼル表示オフ)
Screen Shot 2020-03-10 at 18.10.58.png【翻訳】あなたの(多分)まだ知らない iOS パフォーマンスアドバイス(元アップルエンジニアから)

本記事は[この記事](https://www.fadel.io/blog/posts/ios-performance-tips-you-probably-didnt-know)の日本語訳です。翻訳許可を[いただいております](https://www.fadel.io/blog/posts/ios-performance-tips-you-probably-didnt-know/#comment-4822809038)。

以下翻訳:

もし Cocoa 開発やソフトウェアビジネスのブートストラップについての最新の記事を常にキャッチアップしたいなら、ぜひ [Twitter で私をフォロー](https://twitter.com/ronyfadel)するか[メールリストを購読](https://mailchi.mp/bc3065c5892d/fadelio)してください。

![陸上トラック](https://www.fadel.io/blog/public/racetrack.jpg)

開発者として、パフォーマンスの良さは我々のユーザにワクワクと嬉しさを与えるのに評価しきれ

元記事を表示

新 App Store 審査ガイドライン 翻訳&差分ガイド 2020年3月号

# はじめに

これは2020年3月4日付けで変更された App Store 審査ガイドラインの翻訳&差分ガイドです。

[前回](https://qiita.com/midnightSuyama/items/655d52f61132d11bf1c5)からの主な変更点は、プッシュ通知の広告利用や飽和カテゴリの更新などです。これまでプッシュ通知の広告利用は禁止されていましたが、条件付きで認める方針に変更されました。App Store で飽和しているカテゴリには、占いや出会い系が加わり、該当アプリの審査は厳しくなるようです。

`multi-player` から `multiplayer` への変更など、軽微な変更は修正項目から除外しています。

https://developer.apple.com/app-store/review/guidelines/

## 修正の撤回

1.4.4 と 5.1.5 について、改訂翌日に変更が無かったことにされているため、改訂当日に確認した方は注意が必要です。
急遽撤回されただけなのか、明示しない方針に変えたのか、真意は不明ですが、少なくとも文書上

元記事を表示

[iOS]カスタムドキュメントにサムネイルを表示する

# iOSとファイルのサムネイル

iOSでは、Mac同様にファイルを扱う機構が存在します。
標準では「ファイル」アプリを通してiCloud Driveやローカルのファイルにアクセス出来ますし、それぞれのアプリでは`UIDocumentPickerViewController`を使ってアクセスすることも出来ます。

![IMG_1408.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24979/38f5f863-fec8-6256-edfe-03f751bf3383.jpeg)

これらのファイルブラウザではjpegやpngなど標準的なファイルフォーマットのサムネイル表示が標準で実装されています。

image.png

また、サムネ

元記事を表示

【Swift】iOS13でStoryBoardではなくXibから起動する

# なんでXib(Xcode Interface Builder)を使うの??
Xibとはアプリケーションの画面をレイアウトする時に使うやつです。
基本的な扱いはStoryBoardと似ています。

【Xibのメリット】
作った画面を複数の画面で再利用するのが簡単
画面の1部のパーツを作ることができる

【Xibのデメリット】
ファイル数が増えがち。。。
画面遷移の関係が可視化されない(コードで書くから)

# 今回やってみること
アプリ起動時の初期画面をXibで作った画面に設定する(iOS13で実現)
iOS13からは、SceneDelegateがテンプレートとして標準化されているのでiOS12以前のやり方と少しだけ違うみたいです。

# 実装の方法
では、早速作っていきます
### ViewControllerとXibファイルを作成する
とりあえず、プロジェクトを作ります。そしたら、画像のようにプロジェクトのフォルダを選択してください。
create_project.png初めてswiftでユニットテストを書いてみた

お久しぶりの投稿になってしまいました。

今までは

– [ストップウォッチ](https://qiita.com/sventouz/items/91faaa4ccdf02a5788bd)
– [タイマー](https://qiita.com/sventouz/items/e419ef5a9955ce06d043)
– [TODOアプリ](https://qiita.com/sventouz/items/ac29ed25f3ffc697a9d8)
– [電卓](https://qiita.com/sventouz/items/07c69235e6760cbdf5b1)
– [天気予報(API)](https://qiita.com/sventouz/items/07c7137e07a580a93cd7)
– QRコードジェネレーター(API)
– [ひらがな化(API)](https://qiita.com/sventouz/items/318d8370ab489724c454)

と細々したものにチャレンジしてきたのですがここらで少しSNSのようなものを作成したいなと思い2月はIns

元記事を表示

ViewControllerのviewIfLoaded?.windowが切り替わるタイミング

試したところ、`viewWillAppear/viewWillDisapper`系のライフサイクルイベントが呼ばれるタイミングと連携する模様。
つまり、presentする際には、`.fullscreen/.overfullscreen`で挙動が変わる。

元記事を表示

Firebase iOS SDK(Crashlytics)をCarthageで管理する

# はじめに

**Firebase iOS SDK**を導入したのですが、**CocoaPods**管理の場合に**ビルド時間がかかる問題**がありました。
このため、**Carthage**で管理するように変更した内容についてまとめました。

なお、基本的にはFirebase公式リポジトリにある[Carthage.md](https://github.com/firebase/firebase-ios-sdk/blob/master/Carthage.md)に記載されている手順通りに対応することで**Carthage**管理することができます。
以下では、上記手順に沿って対応する中でいくつかハマった点について詳しく説明していきます。

## 今回導入した**Firebase iOS SDK**

* **FirebaseCrashlytics**

## 実行環境

|環境|バージョン|
|:-:|:-:|
|macOS Catalina|10.15.3|
|Xcode|11.3.1|
|Firebase iOS SDK|6.18.0|

# Firebase iOS SDKをC

元記事を表示

【Swift】UIPickerViewのデフォルト値を変更する

## 要約

UIPickerViewのデフォルト値を変更したい場合、以下の2箇所を変更する必要がある。

– PickerViewを開いた後、選択されている値を変更する

“` swift
self.pickerView.selectRow(index, inComponent: 0, animated: false)
“`

– PickerViewで選択された値を表示しているTextFieldなどの値を変更する。

“` swift
pickerViewTextField.text = optionList[index]
“`

## 備考
– `selectRow`だけ設定すけばいけるやろと思ってハマった…ので備忘録です。

元記事を表示

UILabelやUITextFieldなどで箇条書きをきれいに表示する

# 概要

iOSのUILabelやUITextで箇条書きテキストを表示したい場合の実装例です。

単純に実装すると以下のBeforeのようにインデントや適切な行間がなく見辛くなってしまいますが、これをAfterのようにきれいに表示できます。

|Before|After|
|:-:|:-:|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113553/b56149de-0077-6ef1-a446-2371b211d6c1.png)|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113553/1be25c2f-6702-a04c-3139-1ac93ed4a871.png)|

# 実装方法

XcodeのPlaygroundで実行可能なコードサンプルです。

“`swift
import UIKit
import PlaygroundSupport
let text = “※以下に

元記事を表示

XcodeのBuild PhasesでSwiftスクリプトを実行する

ビルド前にファイルの自動生成が必要な時はコンパイル前に行っておく必要があります。
人の温かみを感じるために毎度エンジニアが自動生成するスクリプトを実行しても良いのですが、XcodeのBuild Phasesの中に組み込めばビルド時に自動的に行ってくれます。
Build PhasesではBashスクリプトを実行できます。なので基本Bashスクリプトで自動生成するプログラムを書くのですが、BashからSwiftコマンドを実行すればSwiftで書かれたプログラムを実行できます。

Swiftはコマンドラインの実行も対応しているので、PythonやRubyのスクリプト言語がわからないiOSエンジニアでもメンテナンスができるというメリットがあります。

# 環境
Xcode11.3.1

# スクリプトファイルの作成
空のSwiftファイルを生成します。そして1行目に以下のおまじないを挿入してください。

“`Script.swift
#!/usr/bin/swift
“`

`#!/usr/bin/swift` はかならず1行目に書きます。コメントの下ではうまく動きません。
これはSwi

元記事を表示

‘Showing Recent Issues SWIFT_VERSION ‘3.0’ is unsupported, supported versions are: 4.0, 4.2, 5.0.’について

久しぶり以前作成したSwiftのソースコードを開いたら、下記のエラーが発生しましたので、
対処方法を明記いたします。
※情報の判断はご自身の責任でお願い致します。

`Showing Recent Issues SWIFT_VERSION ‘3.0’ is unsupported, supported versions are: 4.0, 4.2, 5.0.`

環境:
Xcode11.3

原因:
原因といたしましては、Swiftのバージョンの違いによるものです。

対応方法:
使用しているSwiftのコードを最新にする必要があります。

project File → Build Phases → Swift Language Version
内のversionを任意のものにする必要があります。
![capture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96378/f352f5e5-dc89-fb03-801f-574865106d25.png)

**※注意点としましては、Target

元記事を表示

Xamarinを勉強し始めたので覚えたことを記録するメモ

#はじめに
Xamarinを使ってマルチプラットフォーム開発をやってみたくなったので、勉強したことを記録として残す(徐々に追記)

## Xamarinとは
iOS | Android | Windows など複数のプラットフォームで動作するアプリをC#を使って構築することができるライブラリ

– Xamarin.iOS
– Xamarin.Android

を導入すると、iOSとAndroidのマルチプラットフォーム開発ができる。
例えばVisual Studioに導入すれば、ついでにUWPアプリも作れる。

## Basic Class Library
各プラットフォーム間で共通的に使えるライブラリ。
基本的には、このライブラリを使ってアプリを構築し
個別の対応が必要なものについて、個々のプラットフォームの
ライブラリを使うことで共通化を目指すようだ。

## iOS版のアプリについて
やはりiOS版のアプリについてはMacとXcodeが必要であった。
Mac上のiOSシミュレータは`Xamarin.iOS Build Host`によりペアリングすることで
Windows上のVis

元記事を表示

OTHERカテゴリの最新記事