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

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

ホーム画面に追加したspaサイトで遷移すると上部にバーが出るのを消す

iPadでspaで簡単なサイトを作って「ホームに画面に追加」をして疑似アプリケーション化して使っていたのですが、トップページは全画面化できるのですが、そこから遷移すると「上部にバー」が出るようになってしまいました。「完了」を押すとバー自体は消えるのですが、せっかくの専用端末化が台無しです。ということで調査しました。

![IMG_0002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14768/ab66cd69-6d0f-38ff-b459-abcf6e41f299.jpeg)
※縮めています&ダークモードなので灰色。

# 環境
– iPadOS 13.1.3

たぶん、どこかのバージョンで治る気がしますが…。

# 方法

結論から書くとmanifestファイルを追加します。

“`index.html


TableViewCellをアニメーションで追加/削除する

ViewControllerのボタンをタップしたときにCellを追加したり、削除するのに `tableView.reloadData()` を毎回呼んでも良いのですが、それだとTableView自体の更新が走ってしまう為、更新したCellがチラついてしまいます。UX的にもあまり良くないですし、そもそも見た目的にもイケてないです。そこでアニメーション付きでTableViewを追加する方法はいくつかある中で、一番ポピュラーな方法で `insertRows` メソッド呼ぶというのがあります。

##insert時
“`swift

// insert時
// Begins a series of method calls that insert, delete, or select rows and sections of the table view.
tableView.beginUpdates()
// 挿入したいCellのindexPathを配列の形式で渡す
tableView.insertRows(at: [IndexPath(row: 0, section: 0)], wit

元記事を表示

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

# はじめに

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

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

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

今回は、地図を表示します。

# 地図を表示
1. MapKit.framework を追加
– [MyGpsMap]-[Build Phase]-[Link Binary With Libraries]を選択し、[+]をクリック
LinkBinLib.png
– 検索窓に [map] と入力し絞り込み[MapKit.framework]を[Add] で追加
AddMapkit.png【Flutter】VSCode上でIntegration Testを動かす

FlutterのIntegration Testは、[公式のcookbook](https://flutter.dev/docs/cookbook/testing/integration/introduction)に載っている方法をそのまま利用すると、いくつか不便な点があります。

– 毎回コマンドラインから実行する必要がある
– 実行するたびにアプリのビルドが走って時間がかかる
– ブレイクポイントを打ってデバッグすることができない

ということでなんとかしましょう。

対象IDEはVSCodeです。

#参考元

こちらのMedium記事を大いに参考にします。
https://medium.com/flutter-community/hot-reload-for-flutter-integration-tests-e0478b63bd54

内容をザッッッッックリと要約すると

– 通常`flutter drive`は次の2つのプロセスを動かして相互通信させる
– アプリ自体(シミュレーター上)
– テストコード(単なるDartプログラム)
– ならば、

元記事を表示

【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のSF Symbolsのサイズを変更する方法

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

## 成功するパターン
“`swift
Text(“user”)
.tabItem {
Image(systemName: “person”)
.font(.title)
}
.tag(4)
“`
“`swift
.font(.system(size: 10))//とかでも行ける
“`
IMG_0335.png

## ダメなパターン

“`swift
Text(“user”)
.tabItem {
Image(systemName: “per

元記事を表示

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

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

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

attributeは全てを暗記する必要はありません。これなんだっけ、と思ったときにこの記事でさくっと見られる簡易リファレンスになればと思います。

# 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から作ります。
今回使う予定のタ

元記事を表示

OTHERカテゴリの最新記事