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

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

iOSアプリでapi叩いてみた

# はじめに
前回の記事で、golangでapiを作成しました。
→ [golangで楽々API作成](https://qiita.com/seaka829/items/b74a88ab4f3b83794910)
api作ったら、叩きたくなるのが男の性

今回の記事では、*簡単に*apiからjsonを取得し、table viewに表示する方法を書きたいと思います。
細かいところの説明は省略しますが、機会があったらまとめたいと思います。

#GitHubからEC2にPull
省略しますが、前回作成したapiを公開しました。

# 画面を作成する
とりあえず画面を作成します。
スクリーンショット 2019-12-11 0.02.59.png
Table Viewの上に、cellを置き、さらにその上にボタンやラベルを置

元記事を表示

iosアプリケーションのリバースエンジニアリングメモ

# 使えるツール

– frida
– Hopper Disassembler
– dsdump
– strings
– otool
– プロキシツール(なんでもええがスクリプティングできるのでmitmproxyオススメ)

# 大まかな流れ

## 静的解析

1. いい感じにdecrypted binaryを抽出する
1. frida-ios-dump( https://github.com/AloneMonkey/frida-ios-dump )を使うと出来る
2. バイナリ見たりヘッダファイル抽出して動的解析につなげる
1. Hopper使う
2. ヘッダファイルはdsdumpで秒で抜ける(swiftも対応してる)
3. フレームワーク見たりする

## 動的解析

基本fridaでなんとかなる(bp貼るとかはできんがhookとかこれ一つでできるのでええんとちゃう)

元記事を表示

iPhone で電子マネー(楽天Edy、nanaco、WAON)を読み取ってみよう!

前回の記事は [iPhone で運転免許証を読み取ってみよう!【ライブラリを使わずに350行の Swift で本籍を読み取る】](https://qiita.com/treastrain/items/58e69a1d82dccde48770) で、[前々回](https://qiita.com/treastrain/items/9025000acec37f77134a)とは異なりライブラリなしで運転免許証を読み取る方法を紹介しました。

しかし、運転免許証は個人情報の塊、かつ暗証番号は絶対に間違えてはいけないので気軽に試せない…。
今回は電子マネー(楽天Edy、nanaco、WAON)を読み取っていきます。運転免許証に比べては簡単に、お手軽に試せますね!

# 環境
– 開発
– Xcode Version 11.2.1 (11B500)
– Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9)
– macOS Catalina 10.15.1(19B88)
– 実機
– i

元記事を表示

SwiftでLINEのようなトーク画面をライブラリ無しで作ろうとした

##やりたいこと
個人でマッチングアプリを開発していた時に、トーク画面が必要になりました。

Swiftのトーク画面といえば色々なライブラリがありますが、使い方がよくわからなかったので、一から自分で作成することにしました。

##下準備
共通で使う色とLabelのカスタムクラスを定義します。

“`UI.swift
//トーク画面の背景の色
let commonBackgroundColor = UIColor(red: 0.9, green: 0.9, blue: 0.9, alpha: 1.0)
//LINEのトーク画面の自分が送った文章の背景色
let greenColor = UIColor(red: 0.52, green: 0.89, blue: 0.29, alpha: 1.0)

//自分のテキストと相手のテキストを表示するためのラベル
class messageLabel: UILabel {

override init(frame: CGRect) {
super.init(frame: frame)

元記事を表示

よく使いそうなRxSwiftのオペレーターの勉強をしてみた(flatMap, flatMapFirst, flatMapLatest 等)

[Atrae Advent Calendar 2019](https://qiita.com/advent-calendar/2019/atrae) の10日目を担当するアガツマです。
普段は、ビジネス版マッチングアプリ [yenta](https://yenta.talentbase.io/yenta) のiOS版を開発をしています。

私は今、RxSwiftの勉強をしています。
その中で、基礎となる一部のオペレーターの動作についてまとめてみました。
(まだ学習中で、理解が深くない部分もあるので間違っていたらコメントお願います!)

RxSwiftの**オペレーター**とは、Observableに用意されているイベントを加工する用のメソッドのことを指します

勉強をすすめる上で
[オブザーバーパターンから始めるRxSwift入門](https://qiita.com/k5n/items/17f845a75cce6b737d1e)
という記事がとても参考になったのでRxSwiftについて知りたい方はこちらも読んでみるのをオススメします。
(この記事では、マーブルダイアグラムをいきなり書

元記事を表示

[ARKit]ARWorldMapを使った空間の保存と復元

## 概要
Worldmap情報を保存するとAR空間全体の状態を保存できる。
アプリ再起動後にオブジェクトを同じ位置に配置したい場合や複数端末で空間を共有したいときに便利

### Worldmapのロード
“`swift
let worldMap = try! NSKeyedUnarchiver.unarchivedObject(ofClass: ARWorldMap.self, from: data)
configuration.initialWorldMap = worldMap
“`

### Worldmapの保存
“`swift
self.sceneView.session.getCurrentWorldMap(completionHandler: { (worldMap, error) in
guard let map = worldMap else {
return
}
let archived = try! NSKeyedArchiver.archivedData(withRootObject: map, re

元記事を表示

[はじめてのiOSアプリ]xcodeで地図アプリを作成(その7)

# はじめに

iOSアプリを作ってみたいけど
何から始めて良いのかわからない

とりあえず、
「やってみました」記事を参考に
地図アプリを真似てみようと思う

という記事の7回目です。

今回は、地図を拡大・縮小までします。

# 拡大・縮小表示
1. 比率を定数として定義
– 今回、拡大縮小比に[[黄金比](https://ja.wikipedia.org/wiki/黄金比)]を使います
– ViewController.swift を以下のように修正
– 【なぜ?】
– 1より大きな値であれば、好きな値を選んでOK
– 拡大でも縮小でも使うので、定数(let)とする
– さすが**黄金比**「いい感じ」で拡大縮小される(と思う)

“`swift:ViewController.swift
class ViewController: UIViewController, CLLocationManagerDelegate {
let golden

元記事を表示

SwiftでAWS S3に画像をアップロードする時のTips

# はじめに

[GameWith AdventCalendar 2019](https://qiita.com/advent-calendar/2019/gamewith)の11日目の記事になります。

AWSのモバイルSDKの使い方は定期的に更新されるイメージがあるため、最近の書き方が気になって検証してみました。
今回の記事では、**S3の指定バケットに画像を直接アップロードする部分のコードや、気をつけるべきポイント**などを簡単に紹介します!

※ ライブラリの導入や、AWS側の設定などについては今回は省略しています。

# 必要なファイルとプロパティ

“`swift
import AWSCore
import AWSS3

// 必須
var uploadCompletionHandler: AWSS3TransferUtilityUploadCompletionHandlerBlock?
// 以下はなくても良い
var uploadProgressBlock: AWSS3TransferUtilityProgressBlock?
var uploadProgress:

元記事を表示

PythonistaでSceneKitを使った3D描画

Pythonista の objc_util で SceneKit を使うと iOS のみで 3D 描画できるスクリプトを見つけたので紹介します。

# 元記事

3d-omz.py 注:load_framework(‘SceneKit’) を足さないとエラーになる
https://github.com/tdamdouni/Pythonista/blob/master/scenes/3d-omz.py

3D in Pythonista
https://forum.omz-software.com/topic/1686/3d-in-pythonista

# 実行イメージ

7BA22298-B587-42D0-8E6D-F17360AF67DC.png

# 解説

“`python
from objc_util

元記事を表示

アプリの起動シーンにおける画面遷移(SceneDelegateを用いる)

## 概要

 ios13から新たに”SceneDelegate” というクラスができました。このクラスができる前は、起動時におけるStoryBoard間の画面遷移などはAppDelegateクラスでコードを書いていましたが、iosのアップデートに伴い、アプリ起動時にうまく画面遷移しないという問題が生じました。
 本記事は、SceneDelegateにコードを書いて、起動時の画面遷移を制御させるための記事です。
 *(ios13以降を対象にしています)*

参考にした記事は[こちら](https://qiita.com/omochimetaru/items/31df103ef98a9d84ae6b)

## できるようになること
ログインしているときはMain.StoryBoard、会員ではないorログアウトしているときはLogin.StoryBoardに画面遷移することを目標にしています。

## コード内容
UserDefaultsで、ログイン状態の有無を記録します。

## 実際のSceneDelegate内のコード

“`swift:SceneDelegate
func

元記事を表示

ドットインストールメモ – swift勉強01

command + R でシュミレーターが立ち上がる

shift + command + H でホームに行く

viewを置いたら制約(constraints)をつけないと位置が勝手にズレてしまう可能性がある

ボタンを設置
controlボタンを押しながら行きたいページへドラック
離す

ただのページ遷移ならpresent modally

新しいページから戻るときはセグエで戻るとまたTOPのページができて2つの白ページができる
だから戻るのではなく新しいページを終了させる

editor ⇨ embed in ⇨ navigation controller(戻るボタン)

元記事を表示

swift – IOSアプリまでの道のり02

↓↓↓↓↓↓↓ あなたの記事の内容
変数と定数の2つがある
───────
“`swift
//print(“Hello World”)
//print(“hello”)
↑↑↑↑↑↑↑ 編集リクエストの内容

定数宣言時は値の型を指定する必要がある

“`swift
let msg : String = “Hello World”
print(“msg”)
var msg = “Hello World”
msg = “Hello again”
“`
定数の型を宣言しない型推論もできる

ある型で宣言した変数or定数は違う型で上書きできない

“`swift
let x = 5
x = “five”

var y = “five”
y = String(“5”)

var sum = 5
sum += 10
print(sum)
“`

条件演算子
条件 ? A : B

“`swift
result = score > 80 ? “great” : “so so …”
“`

nil 何もない

“`swift
let s: String = nil
let s

元記事を表示

実際におみくじアプリを作成する – IOSアプリまでの道のり02

ドットインストールでのチュートリアルでなんとなく雰囲気を掴んだので参考書でもう少し基礎について学んでいく

## swift

### 変数と定数

変数と定数の2つがある

“`swift
var x = 10
print(x) //10

let y = 1.08
print(y) //再代入できない
“`

### for文

筆者はJavaScriptやPHPなどを業務で使用しているのだが書き方が結構違う。

“`swift
for n in 1…9 {
print(3 * n) //3の倍数が出力される
}
“`

ブロック内で宣言した変数はブロック外ではエラーになる

またnは定数だがifの後は必ず定数になるのでわざわざletと書かなくて良い。逆に書くとエラーになる。

“`swift
for let n in 1…9 {
print(3 * n) //エラー
}
“`

## 型(データ型)

1つの変数には同じ型の値しか入らない。

“`swift
var number = 1
number = 120 //これは上書きできる
num

元記事を表示

基礎から再勉強 – swift勉強03

## override

親クラスのメソッドを上書きするには

override

が必要

### super

superを使用することでメソッドの一部だけを上書きすることができる。

“`swift
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
“`
と書くとviewDidLoad にプラスして自分で書いた処理を実行することができる。

## オプショナル型

nil = 何もない

“`swift
var age:Int = nil

var age:Int? = 25
“`
↑上はnilにもなり得る整数型という意味になります。

### オプショナル整数型を使った計算

“`swift
var age:Int? = 25
print(age + 1) // これはエラーになる
“`

オプショナル整数型の値を持つ変数から整数型のみを取り出すことで解決す

元記事を表示

使うと手放せなくなるSwift Extension集 (Swift 5版)

こんにちは、[たなたつ](https://twitter.com/tanakasan2525)です :cat:
汎用性高めのExtension集です。Protocolやstructなども一部含まれています。

[使うと手放せなくなるSwift Extension集 (Swift 4版)](https://qiita.com/tattn/items/dc7dfe2fceec00bb4ff7)のSwift 5版です。 (2年ぶりの更新)
Swift 5.1の新機能や記法の最適化によって段々と良くなっています。

今回紹介したExtensionは全て下記のリポジトリに入っています。他にも便利な機能がたくさん入っているので、利用したい方はコピペやSwift PM/Carthageで導入してみてください。
https://github.com/tattn/SwiftExtensions

※ **Swift 5.1, Xcode 11.2.1** で動作確認をしています。
※ コード片ごとに紹介していますが、別のコード片のExtensionに依存している場合がありますので、ご注意ください。

元記事を表示

iPhone で運転免許証を読み取ってみよう!【SwiftUI で簡単に】

こんにちは、[aBiteエンジニアのけわし](https://sites.google.com/view/hatonoigon/home)です!
SwiftUIとOSSライブラリを使って、簡単に運転免許証を読み取ってみましょう。

# Xcode プロジェクト作成
新規プロジェクトを作成し、
Screenshot 2019-12-09 at 19.37.43.png
Single View App を選びます。
Screenshot 2019-12-09 at 19.40.46.pngARKitのはじめかた その3「オブジェクトを配置する(ARKit2版)」

# はじめに
こちらの続きです▶︎ [ARKitのはじめかた その2「オブジェクトを配置する(ARKit1版)」](https://qiita.com/1901drama/items/abe65ff529a09ec2b798)

こんにちは!
[ARKitのまとめ記事](https://qiita.com/1901drama/items/cc9f598e3808fe7e32cb) にて書いた実装方法について
次はARKit2時代から使われるようになった「オブジェクト配置の方法」を書きます。
前の記事の方法より汎用性が高いのでなるべくこちらの方法を推奨します。

# ゴール
タッチした場所に飛行機が出てきます。
![iOS のファイル (2).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222377/4e7c5226-36b2-5f25-e78e-6d5e76f9fa92.gif)

# 前提
[ARKitのはじめかた その1「5分で出来るARアプリ」](https://qiita.com/1901

元記事を表示

iOSアプリでよくある上タブ作ってみた

コード:https://github.com/Yaruki00/UnderBarTabView
PodsやCarthage対応はできてないので、もし使いたい場合はファイル引っこ抜いてください:crying_cat_face:
ほら、カスタマイズしやすいし・・・ね・・・:joy_cat:

# 機能
![normal.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84917/954c5b97-80f0-eda4-a51a-52d5fec3f11f.gif)![infinite.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84917/ccc64269-6130-cfb9-30a0-79804ec0fcd0.gif)

– 現在選択している箇所に下線がつきます。
– タブのサイズは、固定と文字列によって可変の2通りから選べます。
– 無限にループするか、しないかを選べます。
– 余白やフォント、色を多少調整することができます

元記事を表示

ML Kit for Firebase テキスト認識を使ってOCR処理をしてみた

## ML Kit for Firebase

**[OCR](https://ja.wikipedia.org/wiki/%E5%85%89%E5%AD%A6%E6%96%87%E5%AD%97%E8%AA%8D%E8%AD%98)**

> 活字の文書の画像(通常イメージスキャナーで取り込まれる)を文字コードの列に変換するソフトウェアである。

**[ML Kit for Firebase](https://firebase.google.com/docs/ml-kit?hl=ja)**

> ML Kit は、Google の機械学習の機能を Android アプリや iOS アプリとして提供するモバイル SDK です。

**[テキスト認識
](https://firebase.google.com/docs/ml-kit/recognize-text?hl=ja)**

> ML Kit のテキスト認識 API を使用すると、ラテン語由来の言語のテキストを認識できます(クラウドベースのテキスト認識を使用すると、より多くの言語のテキストを認識できます)。

> テキスト認識はク

元記事を表示

AudioUnit(iOS)を20個以上用いて「ラウドネス周波数特性補正付き音楽再生アプリ」を独学で造り上げた奮闘記 [ その後 -2 ]

## A. 副 題 と 履 歴
#### A-1. 副 題

  • 「Apple の Version-Up という荒波」に挑む老人の挑戦(トライ)と「音楽再生 App の周辺事情」を記す。

#### A-2. 履 歴

  • この投稿文は、2019年12月09日にQiitaへ投稿した記事です。
  • 2019年12月09日に「W-3. 始めたWeb記事収集の手法」の「サンプルコード」内に「<」のミスが有り修正しました。

## B. はじめに

#### B-1. 昨年の春と秋の Version-Up に付いて

  • イャ〜ァ〜、昨年の春と秋の Version-Up には参ったです。ややこしい変更をやってくれるから解決に時間が掛かること、大変でした。
  • 特に、2018年秋の「iOS12.0と Xcode10.0の Version-Up 」では、”私のApp”も大きな影響を受けてしまいました。
  • 結局、原因の分析と修正作業に手間取り、完了が2019年の3月半ばに成ってしま
元記事を表示

OTHERカテゴリの最新記事