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

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

【Unity】これ以上セーフエリア対応で消耗しないためのアセットを作った【AutoScreen】

**[AutoScreen](https://github.com/su10/AutoScreen)(GitHub)**

![AutoScreen_01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27863/00c476b7-adc2-a981-8136-ec8d35fd8f28.gif)
![AutoScreen_02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27863/19666be0-5fd5-2966-300e-6886f7beaf1d.gif)

# はじめに
Unityにおけるセーフエリアの対応に関しては`Screen.safeArea`というAPIがあるのですが、ビルドして実機で呼ばないと端末ごとの値が取れない=エディタ上ではレイアウトの確認ができないという辛さがあります。

最近だとUnite Tokyo 2019でも紹介された[Device Simulator](https://docs.u

元記事を表示

Scoped Model を利用した場合の画面遷移でうまくいったコード例(Flutter)

最近Flutterをいじり始めました。Scoped Modelを利用するとスッキリ書けるので、そのコードを書いたときの画面遷移時に具体的にどうコードを書くとうまくいったかをレポートします。

# [Scoped Model 初めて聞いた方へ]Scoped Model とは

公式のパッケージサイトは下記です。

https://pub.dev/packages/scoped_model

基礎原理の解説について下記記事が参考になりました。

https://qiita.com/hayassh/items/690fa0d6528e056617b5

自分の言葉で書くと、数値や文字列の処理部分とデザインテンプレート部分をModel定義をすることで綺麗に分離ができます。あと、このパッケージは、GoogleのFlutter開発チームが提供してくれているVeggie Seasonsというアプリのコードにも採用されていたので、自分もやってみようと思いました。Veggie Seasonsのコードは以下です。

https://github.com/flutter/samples/tree/mast

元記事を表示

SwiftUIでtabItemの画像サイズを変更する方法

# SwiftUI tips
SwiftUIでタブのアイテムのサイズを変更するのに少し苦戦したので共有します。
なお、大きくしたアイコンがtabの一番上に付いていてpaddingも効かないのでご了承?‍♂️
(解決策あったら米キボンヌ)

## 成功するパターン
“`swift
Text(“user”)
.tabItem {
Image(systemName: “person”)
.font(.title)
}
.tag(4)
“`
IMG_0335.png

## ダメなパターン

“`swift
Text(“user”)
.tabItem {
Image(systemName: “person”)
.resizable()
.aspectRatio(contentMo

元記事を表示

Swift5.1のattribute全解説(全27種)

# 概要
Swift5.1で利用できるattributeの一覧です。(Public APIのみ)

本記事は以前作成した[Swiftのattributeまとめ[Swift4対応]](https://qiita.com/shtnkgm/items/a793f26445f2b8390bee)をSwift5.1向けに更新したものです。

# attributeとは
– コンパイラに対し、**宣言や型の補足情報を伝えるもの**
– 属性や修飾子とも呼ばれる
– Swift5.1では[公式リファレンス]((https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Attributes.html))に記載されているもので**全27種類**

# attributeの記法
– attributeの記法は以下のようになり、より詳細な情報を補足するために引数も指定することができる
– **@〜**という記法はコンパイラディレクティブと呼ばれ、コンパイ

元記事を表示

[Xcode]Wi-Fiでビルドする[実機]

開発中のiosアプリを実機(iPhone)でビルドする際に、USBケーブルを繋がずWi-Fiでビルドする方法です。

##開発環境
macOS Catalina V.10.15.1
Xcode V.11.2.1

#やり方
1、最初はUSBケーブルで実機(iPhone)とMacを繋ぎます。
(このデバイスを信用しますか?と聞かれるので、「OK」)

2、タブバーにある「Window」をクリックし、さらに「Devices and Simulators」をクリックします。
(ショートカットキーで⬆️+ ⌘ + 2 でもいい)

3、すると、実機(iPhone)の情報が表示されます。そこにある「Connect via network」のチェックボックスにチェックを入れます。

これで完了です。試しにUSBを抜いてビルドしてみてください、正常にビルドできるはずです。

ただ、ビルドの速度はどうなんでしょう、、、やっぱり有線の方が速いかな?:thinking:

元記事を表示

【Swift/iOS】CoreLocationで緯度・経度を取得して位置情報を表示する

# 概要
CoreLocationで緯度・経度を取得して位置情報を表示する方法を説明します。

# 確認バージョン
Xcode 11.2.1
Swift 5.1.2
iOS 13.2.3

# CoreLocation
## ライブラリ
TARGET -> Build Phase -> Link Binary With Libraries
CoreLocation.frameworkを追加
CoreLocationライブラリ

## Info.plist
Privacy – Location When In Use Usage Description
位置情報許可のアラート画面に表示される説明を追加します。

# 実装
1. 情報表示用のUILabelを追加
2. 位置情報を利用許可状態を判定
3. 位置情報の更

元記事を表示

【Flutter】プラグインを使用した時に出るSwiftバージョン指定エラーの解決

#問題

下記エラーの対処法です。

Flutterで特定のプラグインを使用した状態で、iOSでデバッグしようとすると発生します。

“`
`app_review` does not specify a Swift version and none of the targets (`Runner`) integrating it have the `SWIFT_VERSION` attribute set. Please contact the author or set the `SWIFT_VERSION` attribute in at least one of the targets that integrate this pod.
“`

`app_review`の部分は使用するプラグインによって変わります。

`SWIFT_VERSION`を指定しろ!!と言っています。

もしかしたら、エラーメッセージの中に下の奴が**黄色で強調されて**いて、エラーの本体のように見えてしまうかもしれませんが、上の奴が本体です。

“`
WARNING: CocoaPods r

元記事を表示

FloatingPanelで高さを調整しようとして詰まった

## この記事について
[FloatingPanel](https://github.com/SCENEE/FloatingPanel) というハーフモーダルビューの実装を数行でできてしまうツールを使おうとして、**パネルの高さを調整しようとして詰まった** 点のメモ。

## Problem
`FloatingPanelLayout` を以下のような形で実装してパネルの高さを調整しようとしたら、Panジェスチャーが指の方向とは真逆に動いたり、変な部分でカクついたりしてして挙動がおかしかった。
(以下は [ドキュメント](https://github.com/SCENEE/FloatingPanel) より抜粋)

“`swift
class ViewController: UIViewController, FloatingPanelControllerDelegate {

func floatingPanel(_ vc: FloatingPanelController, layoutFor newCollection: UITraitCollection

元記事を表示

【iOS】よくある横スクロールをStoryboardだけで作る

アプリのチュートリアル的な画面でよく見る、横にページめくりする感じのViewを実装します。

こんな感じのものです。

これを__コードを全く書かずに作ります。__サクッと作りたい時におすすめです。

それでは順を追って説明します。

## UIScrollView、UIStackView(Horizontal)を配置
![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208118/aa000fc1-d248-354f-ca73-4824c23d65ce.gif)

普通にスクロールビューを置いて制約(画面いっぱい)を設定し、中にスタックを置いています。
横スクロールにしたいのでスタックはHorizontalにし、スクロールビューとスタ

元記事を表示

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

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

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

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

今回は、プロジェクトを作成します。

# +αの目標
世の中に「やってみました」記事は、たくさんある。
多くの場合、同じことをすれば同じ結果を得ることができる。

しかし「なぜそのようなことをするのか?」を
解決できないから自分が成長しない。

『人が書いた「やってみました」記事を参考に
できるだけ「なぜ?」を解決しながらやってみよう』(汗)

# 機能リスト
– 基本機能として、このような機能があればいいかな?
– 地図を表示
– GPS(corelocation)で現在位置取得し表示
– GPSと地図表示を連動

– 追加機能としては、これ。
– 縮尺を変更可能
– GPS 精度変更
– 逆 geocoding で地名表示

# プロジェクト作成
1. Xcode11 を起動
– 【なぜ?】
– iOS アプリを開発するには xcode を使う必要があるから

元記事を表示

iOS端末の機能を使ったり、状態を管理したりしたいときに読む記事がこちら!

最近クロス開発プラットフォームの実用性を検証していたのですが、その中で、iOSネイティブならではの機能ってクロス開発でどう実装するんだろう?そもそもどんなのがあったっけ?とふと思うことがありましたので、iOSネイティブならではのiOS端末と密接に関わる機能の実装サンプルをまとめてみました。

開発環境はXcode11.0、Swift5.0で、最小構成で実装しています。
正直この記事を見た方が早いな…と思った項目に関してはリンクを掲載させていただいています。どの記事もわかりやくまとまっていて、とても勉強になるものばかりです。

# 目次
– [カメラ・アルバム](#カメラアルバム)
– [位置情報](#位置情報)
– 住所
– 方角
– [端末イベント](#端末イベント)
– 監視
– 通知
– [ネットワーク](#ネットワーク)
– [センサー](#センサー)
– スクリーンの明るさ
– 音
– 加速度
– 角加速度
– シェイク
– 歩数
– [認証](#認証)
– 生体認証
– S

元記事を表示

【iOS】iOS13のUISearchBarの新機能を試してみる

iOS13では
`UISearchBar`に関連する下記のクラスが追加されました。

**UISearchTextField**
https://developer.apple.com/documentation/uikit/uisearchtextfield

**UISearchToken**
https://developer.apple.com/documentation/uikit/uisearchtoken

**UISearchTextFieldDelegate**
https://developer.apple.com/documentation/uikit/uisearchtextfielddelegate

色々調べてみたのですが
あまり情報が出てきませんでした。

WWDC2019のセッションでもサンプルコードを出すと言っていたのですが
現在まだ見つけることができていません。
もし正式な情報の場所などご存知の方いらっしゃれば教えてください??‍♂️

WWDC2019のセッション動画
https://developer.apple.com/videos/play

元記事を表示

【Swift】OpenAPIGeneratorにPRを出してみる

いくつかのiOSアプリ案件でOpenAPIGeneratorを使ってswift4のAPIクライアントを自動生成しているのですが、とても快適です。

利用状況はこんな感じ

– OpenAPIClientで生成したファイルは、〇〇(プロジェクト名)APIClientとしてプロジェクト本体のレポジトリとは別のレポジトリとして管理
– SwiftPackageManagerに対応させて、SPM経由でプロジェクトからimportできるように
– `update.sh` というシェルを○○APIClientディレクトリのルートにおいて、実行してタグ更新するだけでAPIの更新が出来るようにし、人依存を撤廃
– いくつか都合が悪いところは、static var の部分を修正して、カスタマイズして対応。(BuilderFactoryを丸ごと切り替えられるようになっているので、最終的に全部カスタマイズ可能な作りになっていてとても便利です)

別レポジトリに切り出したのは、APIClientはプロジェクトの内部構造に依存せず独立運用可能なので、切り離して運用する事でプロジェクトレポジトリの複雑度をむやみに

元記事を表示

#16 iOS13以降の画面遷移で前の画面に戻れてしまう問題の解決方法1例

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

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

##part1
画面の遷移先の`View Controller`を選択している状態で,`Attributes inspector`の`Presentation`を`Full Screen`に変更する.

スクリーンショット 2019-11-24 午前0.39.36.png

元記事を表示

#15 TabBarItemをカスタマイズする1例

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

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

##part1
`Tab Bar Item`を選択する.

スクリーンショット 2019-11-24 午前0.07.24.png

##part2
`Attributes inspector`の`Title`を任意の文字列にし,`Image`を任意のものを選ぶ.

スクリーンショット 2019-11-24 午前0.13.36.pngVIPERでTabBarControllerを実装する

VIPERでTabBarControllerの実装をしてみたので記事にまとめました。

VIPERそのものに関しては当記事では割愛させていただきます。
VIPERってそもそもなんぞや?という方は以下の記事が非常に分かりやすいのでおすすめです!
https://qiita.com/hicka04/items/09534b5daffec33b2bec
https://qiita.com/hirothings/items/8ce3ca69efca03bbef88

# 流れ

今回はアプリ起動時に開く画面をTabBarControllerで実装する想定です。
HomeTabBarController,HomeTabBarRouter,HomeTabAssemblyという3つのファイルを使って作成します。

今回使用するサンプルコードは下記になります。
https://github.com/Shoryu0831/VIPER-TabBarController

# HomeTabBarController

まずはじめにHomeTabBarControllerから作ります。
今回使う予定のタ

元記事を表示

iOSのダークモードでアイコンの色が反転しない!

Assets内のアイコンのプロパティで「Render As」を「Template Image」に設定すると、モードに合わせてアイコンの色を変えて描画してくれるようになります。

![Screen Shot 2019-11-23 at 22.17.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50780/fcf59b9f-dada-07fc-cd59-4daa5d8a1240.png)

通常モード

![Simulator Screen Shot – iPhone 11 Pro Max – 2019-11-23 at 22.29.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50780/8a90b625-173e-fe0b-72a3-73d38ef7bbd5.png)

ダークモード

![Simulator Screen Shot – iPhone 11 Pro Max – 2019-11-23 at 22

元記事を表示

#14 NavigationBarをカスタマイズする1例

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

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

##part1
Xcodeで`Navigation Item`と検索する.

スクリーンショット 2019-11-23 午後6.54.43.png

##part2
それを`Navigation Controller`を設定した`View Controller`へドラッグ・ドロップする.

スクリーンショット 2019-11-23 午後6.55.25.pngFlutterで環境構築からHelloWorld & スプラッシュまでやってみた。【環境構築編】

# 概要
自己学習で、Flutterを触ってみました。
サンプルアプリ&スプラッシュ起動までの環境構築手順となります。

# Flutter is何?
>Flutter は Google 社が開発しているオープンソースのアプリケーションフレームワークです。
クロスプラットフォームに対応しており、ワンソースで複数のプラットフォーム(iOS、Android、Web、Windows、Mac、Linux)に対応したアプリケーションを開発することができます。
また、マテリアルデザインによる美しい UI を利用することができます。

だそうです。
逆にオリジナリティー溢れるデザインは適応しずらいって事ですかね。

そのほかにFlutterは以下の特徴があります。
– Dart 言語 による開発
– ホットリロード(記述したコードをリアルタイムに反映)
– 高速な動作

# 環境
– macOS Catalina version 10.15.1
– Flutter v1.9.1+hotfix.6 // Stable版
– Android Studio 3.5.2 for Mac
– Android

元記事を表示

#13 iSOアプリのCellを選択不可にする1例

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

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

##part1
`Table View`を選択した状態で.`Attributes inspector`の`Selection`を`No Selection`にする.

スクリーンショット 2019-11-23 午後6.24.25.png

スクリーンショット 2019-11-23 午後6.24.54.png

  • OTHERカテゴリの最新記事