- 1. [Swift5].gitignoreファイルの作成方法とデフォルトで記述しておくべきコード
- 2. Flutter で仕事したい人のための Widget ツリー入門
- 3. 既存のWebコンテンツをCapacitorを使ってiOSアプリ化する
- 4. [超個人的メモ] iosシュミレーターのディレクトリ構造を覗きたい時
- 5. SwiftUIで作るしりとり地図アプリ
- 6. JUCE: iOSアプリにSplash Screen (Launch Screen) を追加する
- 7. Swift チャットアプリのチャット画面が作りたい!
- 8. SceneEditorから追加したSCNActionに、コードからアクセスする
- 9. Swift UIScrollViewの使い方
- 10. [Swift] Realmを実装して分かったこと色々
- 11. iosアプリ開発に便利なライブラリ一覧
- 12. 写真を読み込んで手書きスケッチ。zoom機能付。作ってみた。
- 13. [Swift] core dataの基本的な実装をまとめてみた
- 14. Xcode 12.3 が頻繁にフリーズする問題に対処した
- 15. モバイルアプリ開発は、Flutter一択なのか?-2021版-
- 16. UITextFiledで一発でplaceHolderの色を選択できるExtensionを考えてみた
- 17. メモ イヤホン抜き差し
- 18. 【SwiftUI】Mapビューを使用する
- 19. 【iOS】Firebaseど素人のFirebase入門 認証編
- 20. JUCE: AirDropでファイルを受けられるようにする
[Swift5].gitignoreファイルの作成方法とデフォルトで記述しておくべきコード
## .gitignoreとは
要約すると`.gitignore`とは、APIKeyなどの他者に知られることで問題が発生する恐れのあるコードをgit(Github)にアップしないファイルを設定するものです。セキュリティの一環として扱われています。
## .gitignoreファイルの作成方法
ターミナルで対象プロジェクトのディレクトリに移動して以下コマンドでファイル作成“`
% touch .gitignore
“`作成したファイルを以下コマンドで開く
“`
% open .gitignore
“`開いたファイルに以下コードを記述
“`
# Xcode
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcus
Flutter で仕事したい人のための Widget ツリー入門
ご存知の通り、 Flutter は Widget を入れ子の構造で記述することで UI を構築します。
“`dart
Center(
child: Column(
children: const[
Text(‘Hello, Flutter!’),
SizedBox(height: 16),
Text(‘This is my first app.’),
],
),
),
“`Flutter の Widget 同士の関係は、このようなソースコードの形状から「入れ子」の構造をイメージしがちですが、 Flutter の仕組みを理解する上では、このソースコードから Widget の __ツリー構造__ がイメージできるようになっておくと何かと役に立ちます。
この記事では、Flutter の仕組みを説明する上でよく使われる __「Widget ツリー」__ について、初学者向けに基本から解説していきたいと思います。
# なぜ Widget ツリーを理解するのか
例えば「中央寄せしたければ `Center`
既存のWebコンテンツをCapacitorを使ってiOSアプリ化する
Zennと同時投稿→ https://zenn.dev/k_u_0615/articles/ece25c2b0a36f3
## 概要
Capacitorを使ったガワネイティブアプリに注目しています。
Capacitorとは、Webコンテンツをガワネイティブアプリとしてビルドしてくれるフレームワークで、[Ionic Team](https://github.com/ionic-team)が開発しています。
既存のWebコンテンツにCapacitorを使用して、アプリ化したらどのような感覚で実現できるのか気になったので、試してみました。## アプリ化の対象
今回アプリ化するのは、[Ionic Frameworkの公式ドキュメント](https://ionicframework.com/docs)の右に表示されているデモです。![スクリーンショット 2021-01-18 12.10.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137148/016a5c86-e8ae-28ba-73fd-ae
[超個人的メモ] iosシュミレーターのディレクトリ構造を覗きたい時
iOSシミュレーターのディレクトリ構造を覗くには
~/Library/Developer/CoreSimulator/Devices
をひらけば良い。参考
https://stackoverflow.com/questions/6480607/is-there-any-way-to-see-the-file-system-on-the-ios-simulator
SwiftUIで作るしりとり地図アプリ
iosアプリ開発を学ぶために、位置情報を組み合わせたしりとりアプリを作成しました。
https://apps.apple.com/app/id1537582064#?platform=iphone## なんで作ろうと思ったか
モバイルアプリ開発のスキルを身につけるために、すぐに作れるチュートリアル的なものを作ろうと思って作りました。しりとりをするだけのアプリなら1ヶ月くらいで終わるだろうと思って始めたのですが、半年もかかる壮大なプロジェクトになってしまいました。## 利用技術
– フロント: SwiftUI
– バックエンド: Firebase発表されたばかりで目新しかったというだけの理由で、SwiftUIを利用しました。
Swiftそのものを触ったことがない、かつ成熟していない技術のため調べるのが難しいので大変でした。バックエンドはFirebaseのFirestoreとFunctionを活用しました。## 完成図
### 回答画面
しりとりを回答して送信する画面。
しりとりになっていなかったり、英数字が入力されたりするとバリデーションがかかる。
JUCE: iOSアプリにSplash Screen (Launch Screen) を追加する
##問題##
ボクのようなアマチュアJUCERはProjucerが無いと何もできないし、でもiOS用のアプリを作りたい。でも、iOS個別のお作法なんて知らないし、UIViewController?は?という状況でも起動時に表示されるSplash Screen(Launch Screen)を追加しなければならないが、勿論全くやり方がわからないし、世の中に転がってる情報は我々には冷たすぎる。##神様発見##
まず、下記の記事がなければ完全に死亡でした。本当にありがとうございます。
https://qiita.com/Riscait/items/89eca8260535d020e82e
具体的には「Is Initial View Controllerがないせい」の部分です。ビンゴ!でした。##前提##
もちろんProjucerでアプリを作っている。##解決方法##
###Storyboardのファイルを作成###
まず、Xcode上でStoryboardなるものを作成しなければなりません。Xcodeで、メニューのFile->New->File…を選択。
![Screen Sh
Swift チャットアプリのチャット画面が作りたい!
#チャットアプリのチャット画面に必要なもの
コロナ禍の中なかなか就職が決まらず暇なので、チャットアプリのチャット画面を作り方を記事にしたいと思います。
チャット画面に最低限必要なものってなんだと思いますか?
今回は僕が勝手に思う`チャット画面に最低限必要なもの`で実装していきます。
必要なコンポーネントは以下
>tableView: メッセージを一覧表示するのに使います。
MessageCell: プロフィールとかメッセージをまとめます。
profileImageView: プロフィール画像を表示をします。
messageLabel: メッセージの表示をします。他にも送信時間表示用のlabelとかは?と思われると思いますが、データベースとか使って実際にメッセージの送受信をするわけではないので今回はこれだけにします。
#実装
まずはViewControllerの方から“`swift
class ViewController: UIViewController {private let tableView = UITableView()
//メッセ
SceneEditorから追加したSCNActionに、コードからアクセスする
SCNActionはコードからもしくはSceneEditorから追加できます。
SceneEditorから追加する方法はApple Engineさんの以下の記事がわかりやすいかと思います。[iOS で SceneKit を試す(Swift 3) その15 – Scene Editor の Action Editor を使ってみる](https://appleengine.hatenablog.com/entry/2017/07/04/195535)
SceneEditorで追加したアクションをコードからリピートしたり組み合わせたりしたい時に。
###ノードがアクションを持っているかどうかの確認
“`swift
node.hasActions
“`###ノードが持っているアクションのKeyの確認
SceneEditorからアクションを追加した場合、英数字の文字列がデフォルトで割り当てられます。
“`swift
node.actionKeys
“`###アクションの取得
たとえば、ノードに割り当てられているアクションの最初のものを取得するには以下
“`s
Swift UIScrollViewの使い方
#`UIScrollView`をコードで実装
独学でアプリ制作しているんですけど、そういえば`scrollView`使ったことないなと思ったので勉強しました!
まず、全く調べずに`scrollView`を使ってみようとしました。
そのコードがこちら“`swift
class ViewController: UIViewController {private let label = UILabel()
override func viewDidLoad() {
super.viewDidLoad()let scrollView = UIScrollView()
scrollView.frame = .init(x: 0, y: 0,
width: view.frame.size.width, height: view.frame.size.height)view.addSubview(scrollV
[Swift] Realmを実装して分かったこと色々
#はじめに
Realmを以下の記事を参考に実装しました。
https://qiita.com/pe-ta/items/616e0dbd364179ca284b
以下のリンクから動き確認できます。Realm使ってみた!
削除機能とかも理解して実装できた?
色々実験してみると理解できてない箇所が分かって勉強になる?? pic.twitter.com/ioyXiYd5nW— たつ@Swift勉強中 (@VeX3Ex5Frd2XcvG) January 17, 2021
そこから色々調べてみたので、自分なりに理解した事を書いてみようと思います。
実装の手順などは、以下の記事から確認してください。
#実装
###① importする
まずは`RealmSwift`をimportします。
`RealmSwift`が必要な箇所でそれぞれimportしてみてください。
はじめはエラーになりますので、1度ビルドする事でimport出来ます。“`ViewController.swift
import UIKit
// RealmSwiftをimportするとエラーになるが、ビルドしたら治る
import RealmSwift
“`
###② モデルクラスの作成
ファイルの追加でswiftファイルを作成してください。
このファイルで
iosアプリ開発に便利なライブラリ一覧
#概要
iosアプリ開発において、簡単に便利なライブラリを紹介します。
ライブラリのインストールはcocoa podsを利用しています。#目次
1.Alamofire
2.AlamofireImage
3.APIkit
4.Reachability.swift
5.ObjectMapper
6.Cadable
7.Rswift
8.lottie-ios
9.PKHUD
10.GradientCircularProgress
11.Realm Swift
12.RxSwift
13.promiseKit
14.Bright-future
15.swiftStoreKit
16.Graphs
17.SwiftDate#ネットワーク系
### Alamofire
アプリからネットワーク通信をしたい場合、定番なツール
swift標準機能のURLRequestを使用するより、シンプルで書きやすい
###AlamofireImage
URLを指定して、ネットワーク上の画像を取得できる
###APIkit
シンプルなコードが書ける
#ネットワーク接続監視系
###Reachabilit
写真を読み込んで手書きスケッチ。zoom機能付。作ってみた。
# はじめに
写真に手書きスケッチを描きこむツールは、いくつか見つかります。
しかし、ズーム機能のついたツールが見つかりませんでした。
標準のフォトやマークアップは拡大率に限界があって 使いにくかった。
だから、今回作ってみました。
uiもスクリプトで作成してみたので、1ファイルで動きます。コードをバンバン書ける方には 怒られそうな程注釈を書き込んでいます。
自分用のメモですが、Python勉強し始めの方には スクリプトの動作が追いやすい
とおもって残しています。
あと、試行錯誤の結果 使っていない関数が少し眠っています。クラスを始めて使って書いてみました。
# 環境
ipad + pythonista3# 要件
・写真を読み込んで、手書きスケッチを書き込める。
・線の色・太さは 数種類づつ用意した。
・undo機能も実装した。
・拡大縮小(zoomin zoomout)機能の実装。zoomは左上を起点にされます。
・拡大機能の実装に合わせてscrollviewを実装。# 苦労した点
・scrollviewの実装方法とスクロールと拡大縮小の連携。
・touchイベン
[Swift] core dataの基本的な実装をまとめてみた
#はじめに
core dataについて色々調べ、とりあえず実装できた状態です。
自分なりにまとめてみます。
tableviewcontrollerと、遷移先の項目を追加するview2つを作成します。
core data以外の操作は省略します?♂️#実装と解説
###1 プロジェクト作成
まずはじめにプロジェクトを立ち上げる際に、User Core Dataを選択します。
すると、ファイル名.xcdatamodeldというファイルが追加されます、###2 tableviewcontrollerと追加用のviewcontrollerの実装
イメージはこんな感じです。
![スクリーンショット 2021-01-16 21.04.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/755375/2e4a1bbe-468d-3296-c818-4f61ec791707.png)###Core Dataの設定
①のファイルを選択すると、Core Dataの設定ができます。
②でEntityを追加します。
Xcode 12.3 が頻繁にフリーズする問題に対処した
## はじめに
数分に1回、Xcode v12.3 がフリーズする状況に陥りました。
フリーズするとレインボーアイコンが出て、数分間操作ができなくなります。
だいぶ辛いです。## 環境
– macOS Catalina v10.15.7
– Xcode v12.3## 対処方法
Apple のDeveloper Forums に[Xcode freezes after upgrade to 12.3](https://developer.apple.com/forums/thread/669378) という質問が挙がっています。その回答を参考にします。
### Devices and Simulators を開く
Xcode が応答するまで待つか、Xcode を強制終了させて再度立ち上げます。
Xcode が応答しなくなるまでの間に、メニューで `Window` -> `Devices and Simulators` を起動させておきます。### Connect via network のチェックを外す
Devices and Simulators に登録されてい
モバイルアプリ開発は、Flutter一択なのか?-2021版-
こんにちは! Tetsukick(菊池哲平)です。
2021年1月現在、インドネシア([PT.AQ Business Consulting Indonesia](https://aqi.co.id/))でモバイルアプリ開発の技術顧問をしております。
iOS歴5年、Flutter歴1年半。[個人でもアプリ開発してます。](https://apps.apple.com/ca/developer/teppei-kikuchi/id1504163412)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/268c909b-c9ca-36b7-157d-3b835a2a109f.png)本記事は、[2020年11月にZennに投稿した記事](https://zenn.dev/tetsukick/articles/c297b6ee1e64397432e5)の改訂版になります。
![image.png](https://qiita-image-store.s3.ap-northeast
UITextFiledで一発でplaceHolderの色を選択できるExtensionを考えてみた
# はじめに
どうもこんにちは、TOSHです。
UITextFieldを使用したときに、textColorはそのままセットできるのに、なぜか、placeHolderの色はそのままセットできないって感じた人ことある人は多いと思います。
ということで、placeHolderについてもTextColorと同じようにセットできるようなExtensionを考えてみました。#通常の方法
通常、placeHolderの色を変更する場合は、“`swift
let color: UIColor = ~ここで任意の色を指定する~
textField.attributedPlaceholder = NSAttributedString(
string: “placeHolderの中の文字”,
attributes: [NSAttributedString.Key.foregroundColor : color])
“`まあ、別にそんなに大変ではないが、NSAttibutedStringを使うのかといった感じですよね。
#Ext
メモ イヤホン抜き差し
iOSで[AudioKit](https://github.com/AudioKit/AudioKit)を利用して音を入力する機能を実装する際、本体とイヤホンのマイクを考慮する必要がある。
本体とマイクとでは、サンプルレートが異なることがあり、本体は44.1kHz、iPhone同梱のLightningイヤホンは48kHzとなる。
抜き差しは、`AVAudioSessionRouteChangeNotification`を利用するのではなく、`AVAudioEngineConfigurationChangeNotification`をトリガーにして、`AKMicrophone`を再インスタンス化しつなげ直し、`AVAudioEngine`を再開させる(`AKManager.engine.start()`)。
また、`AudioKit`が`AVAudioEngineConfigurationChangeNotification`をハンドリングしているので、事前に無効にしておく (`AKSettings.enableCategoryChangeHandling = false`)。
【SwiftUI】Mapビューを使用する
#この記事は何?
iOS13では、SwiftUIでMapKitを扱うにはUIKit互換のビューでラップする必要がありました。iOS14で、SwiftUIネイティブなビューとしてMapが実装されたようです。
ここでは、「アップル本社の場所を地図上に表示するビュー」のコードを載せておきました。###環境
– macOS11.1
– Xcode12.3
– Swift5.3###コード
““Swift:SwiftUIのMapビュー
import SwiftUI
import MapKitstruct MapView: View {
@State var region = MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 37.3351, longitude: -122.0088),
span: MKCoordinateSpan(latitudeDelta: 0.02, longitudeDelta: 0.02))var body: s
【iOS】Firebaseど素人のFirebase入門 認証編
Firebaseど素人だったので、Firebase学習の為に公式ドキュメントを見て、学びをサンプルアプリという形でアウトプットしました。
まずは`Authentication`(認証)に挑戦!##作ったサンプルアプリのデモ
![イメージ.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678954/6e930cdb-5e7a-a306-c5a1-edc575599287.gif)現在使用中のユーザーメールアドレスがラベルに表示されるアプリです。
・メールアドレスとパスワードを使った新規登録(サインアップ)
・登録済みのアカウントの認証(サインイン)
・サインアウト
・匿名認証この機能の実装を行いました。
##まずはFirebaseに登録
Firebase公式ドキュメントに沿って、Firebase登録とFirebase SDKをアプリに追加する。
Firebase を i
JUCE: AirDropでファイルを受けられるようにする
##問題##
JUCEにはContentSharerというクラスがあり、テキストやファイルを他のデバイスにシェアできる機能があるのだが、受けることができない。これはアホなのでなんとかしたい。目標はAirDropでファイルを送って受けられるようにすること。送る側はContentSharerを使うだけなので割愛。##方法##
JUCEのソースをいじらないと流石にできなかった。iOS/Macのコードに手を入れる。このメソッドを追加。ring2 changeで括ってあるところが変更点。自信がないのでまどろっこしく書いているがもっと短く書いて良いと思う。“`modules/juce_gui_basics/native/juce_ios_Windowing.mm
#if defined (__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
– (void) userNotificationCenter: (UNUserNotificationCenter*) center willPresentNotif