- 1. ドットインストールメモ – swift勉強01
- 2. swift – IOSアプリまでの道のり02
- 3. 実際におみくじアプリを作成する – IOSアプリまでの道のり02
- 4. 基礎から再勉強 – swift勉強03
- 5. 使うと手放せなくなるSwift Extension集 (Swift 5版)
- 6. iPhone で運転免許証を読み取ってみよう!【SwiftUI で簡単に】
- 7. ARKitのはじめかた その3「オブジェクトを配置する(ARKit2版)」
- 8. iOSアプリでよくある上タブ作ってみた
- 9. ML Kit for Firebase テキスト認識を使ってOCR処理をしてみた
- 10. AudioUnit(iOS)を20個以上用いて「ラウドネス周波数特性補正付き音楽再生アプリ」を独学で造り上げた奮闘記 [ その後 -2 ]
- 11. 運転免許証の中身について+読み取るときの注意点
- 12. iOSのショートカットを使ってWebページのスクリーンショットを撮る
- 13. iOS開発完全に理解したのその一歩先へ…
- 14. プロパティやメソッドの並び順テンプレート(Swift)
- 15. Bitrise CLIでiOSターゲットのUnityプロジェクトをアーカイブ
- 16. UIButtonをaddSubViewする時はsuperviewを適切に選択すべし(戒め)
- 17. 漫画のセリフ画像を共有できるアプリを作ってみた
- 18. Swiftで可変のラベルが入ったスクロールビューの高さをAutoLayoutで調整する
- 19. 【Objective-C】コード上からボタンを追加する。
- 20. [swift5]iOSアプリで位置情報取得機能を実装
ドットインストールメモ – 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) //10let 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 = nilvar 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 プロジェクト作成
新規プロジェクトを作成し、
Single View App を選びます。
ARKitのはじめかた その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月半ばに成ってしま
運転免許証の中身について+読み取るときの注意点
# 運転免許証の中身について+読み取るときの注意点
こんにちは…でいい時間なのかな?
10月あたりにiOSアプリの開発環境に触る機会がありCoreNFCを用いる事になったのでせっかくだから、得た知見を保存するためにQiitaに投稿を決意しました。
今回はCoreNFC関連ということで、現在treastrain氏(https://qiita.com/treastrain) が現在取り扱っている運転免許証についての注意事項等を記載していきます。
## 運転免許証の仕様について
– [運転免許証公開技術仕様(Ver008)](https://www.npa.go.jp/laws/notification/koutuu/menkyo/menkyo20190403_070.pdf)
取得できる内容についてや、Application Protocol Data Unit (**APDU**) コマンドについてはまた機会があれば記載させていただきます。(参照する場合、章-ページで表させていただきます)
今回フォーカスを当てるのはデータの**形式**についてです
書いてる途
iOSのショートカットを使ってWebページのスクリーンショットを撮る
## 前提
この記事はペパボアドベントカレンダーの9日目の記事です。Gitについて何か書くと宣言していましたが、個人的に面白かったネタが降ってきたので急遽変更して、iOSのショートカットAppを使ってみた記事を書くことにしました。## ショートカットAppって?
iOS13から標準搭載になったアプリです。iOSの挙動をある程度自動化できるスクリプトを組めます。今回はこれを使ってWebページのスクショを取って写真に保存する、ということをやっていきたいと思います。### ショートカットAppの概要
ビジュアルな感じでスクリプトを組めるアプリです。
![IMG_1064.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116105/cc56cb4e-551f-f5f3-b6d1-70e63f9a38fa.png)
アクションと呼ばれるパーツを組み合わせていって、やりたいことを実現します。
基本的にアクションには入力と出力があり、入力をアクションによって変化させ出力にし、その出力を他のアクションの入力に渡
iOS開発完全に理解したのその一歩先へ…
この記事は [CBcloud Advent Calendar 2019 4日目](https://qiita.com/advent-calendar/2019/cbcloud)の記事です。
おそらくiOS/Androidエンジニアとして、CBcloudに2019/5/1から参画しましたが、
なぜか今はPM業のようなことをやっているentakuです。(この話は後日書こうとおもいます。)
念のため言っておくと、今の働き方に満足しているので、その辺は問題ないのです。# 0. 自己紹介
entakuです。経歴は下記のようになっています。
なんちゃってSE
->NWエンジニア[SIer]
-> サーバーサイドエンジニア[SIer] ・java/PHP..etc
-> iOS/Android アプリ開発[スタートアップ]
-> Vue / Android アプリ開発 @ CBCloud最近は「ユーザーを動かす開発者」でありたいなと思います。
直近ではiOS開発が好きで下記のような活動をしていました。
[一人iOSエンジニアでも気持ちよく開発できるiOSア
プロパティやメソッドの並び順テンプレート(Swift)
## はじめに
SwiftLintには、クラスやプロパティなどの並び順を強制するルールがあります。
|ルール名|概要|
|:–|:–|
|file_types_order|ファイル内の型の並び順を強制する|
|type_contents_order|型内のプロパティやメソッドの並び順を強制する|これらのルールを適用することで、必然的にコードが整理されて可読性が上がります。
しかし、並び順を覚えるのは大変です。
ぱっと見でどこに何を書けば(書いてあるか)わかるよう、テンプレートを作成しました。ルールの例からほぼ変えていないので、公式を見るだけでもいいと思います。
https://github.com/realm/SwiftLint/blob/0.38.0/Rules.md#file-types-order
https://github.com/realm/SwiftLint/blob/0.38.0/Rules.md#type-contents-order## 自分ルール
同じグループの場合、アクセス修飾子の大きいものから順に書きます。
( `open` → `pu
Bitrise CLIでiOSターゲットのUnityプロジェクトをアーカイブ
# はじめに
こんにちわ、 @kiy0p0n です。
[Diverse Advent Calendar 2019](https://qiita.com/advent-calendar/2019/diverse)の9日目の記事です。# 前書き
今回はUnityでモバイルゲーム開発の際のCIについての話題です。
JenkinsでiOS/Androidのデプロイを自動化する記事はたくさんあるのですが、サーバーレスでスクリプトを書かずとも手軽にCI始めたいなと思った際に、bitriseでiOS/Androidのデプロイを自動化できるのでは?
ということをちょっと調べて実際にやってみた内容を今回は記事としてまとめました。# やったこと
bitrise CLIを用いてiOSターゲットのUnityプロジェクトのビルド ~ ipa生成## 環境
| env | version |
|:-:|:-:|
| OS | macOS Catalina(10.15.1) |
| bitrise CLI | 1.36.0 |
| unity | 2019.1 |
| xcode | 11.2 |
UIButtonをaddSubViewする時はsuperviewを適切に選択すべし(戒め)
# ある日のこと……
画像の上にボタンを置いて、ボタンタップ時に処理を追加しようとした。## 作りたいもの
### 完成図
![Simulator Screen Shot – iPhone 11 Pro Max – 2019-12-08 at 20.50.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149055/68cbb2d1-9656-6e05-ae52-4f18127da3b3.png)## 早速作ってみる
### コードを書いた
これで完了!……と思うじゃん?“`ViewController.swift
import UIKitfinal class ViewController: UIViewController {
private lazy var imageView: UIImageView = {
let imageView = UIImageView()
// 本当は画像を置いていたのだが、サンプル用のコードなのでbac
漫画のセリフ画像を共有できるアプリを作ってみた
この記事は[個人開発 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/private-development) 8日目の記事です。
## 概要
[漫画のセリフ画像を共有できるアプリ](https://apps.apple.com/jp/app/%E6%BC%AB%E7%94%BB%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97/id1326447543)を作ってみたので、サーバ側の構成等も含めて紹介したいと思います。## 機能
作品名やキーワード検索から漫画のセリフ画像を選択し、共有ボタンからコピペ or 直接LINE等の外部アプリを開いて送るだけです。Swiftで可変のラベルが入ったスクロールビューの高さをAutoLayoutで調整する
##やりたいことの概要
1画面では収まり切らないとても長い文章を表示するときに、UIScrollViewは便利です。しかしその文章の長さを後で変えたり、異なるデバイスで見る際は、UILabelの高さを明確に決められません。自分が作成したマッチングアプリの利用規約を載せるときに、この問題にあたりました。最初は大きめに高さを確保する方法を採用しましたが、最後までスクロールしたときに謎な空白ができてしまいます。
今回はコードによるオートレイアウトのみで、scrollViewのcontentSizeを最適化する方法をまとめます。
##コード
“`Rule.swift
import Foundation
import UIKitclass RuleView: UIView {
let scrollView = UIScrollView()
let label = UILabel()required override init(frame:CGRect){
super.init(frame:frame)
【Objective-C】コード上からボタンを追加する。
objective-cにおいて、画面にボタンを追加する場合、storybordから追加することができる。
しかし、動作などを追加する場合storybordとコードをつなげる必要があり、
ボタンを多く追加すると個人的には見づらくなってくる。できれば、コードだけで確認がしたいため、
今回は、コード上からボタンを追加する方法についてまとめてみようと思います。#ボタンの設定
UIButton をコード上で使用することで、ボタンを追加することができます。
追加する時に、各状態になった場合のボタンのタイトル、色などを指定することができます。“`
//ボタンの宣言
UIButton *button = [[UIButton alloc]init];//タイトル・テキスト色・画像 通常
[button setTitle:@”ボタン” forState:UIControlStateNormal];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[swift5]iOSアプリで位置情報取得機能を実装
現在いる位置情報をラベルに反映するアプリの実装方法を紹介します!
ここでは、”常に位置情報を取得しない”実装にします。
“常に位置情報を取得する”ものについては別途記載します。(作成が完了したらここにリンクを追加します・・・)##アプリの概要
### デフォルト
緯度と経度を表示するラベルに「デフォルト」と表示されています。
|![default_location.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547575/f82b2318-1590-4fdc-10fc-10b3fa87d9bf.png)|
|:-:|### 位置情報を取得ボタン押下時
緯度と経度を表示するラベルに、位置情報が表示されます。
(画像は、シュミレータにて位置情報を東京に設定しています。)|![tokyo_location.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547575/bee40c9b-b294-69f1-