swiftとは
swiftの基本について学んでいきましょう。
2020年8月現在では、SwiftUIでの開発となっています。
開発環境について
swift 5.24 xcode 11.6 2020年 8/21 |
この状態の情報です。情報は常に更新していきます。
■swiftUIでの開発について
■基本について
.selfとは
■画面の使い方
■UI画面作り
■Swiftチュートリアル
■UIKit
■データの連結
■地図を利用する
MkMapViewの使い方
アラートの使い方
参照
swiftでの開発方法とは?
windowsでできるのか?⇒ ダメ。
Macで開発をしましょう
Appleのサービスを利用する「Apple ID」 開発のための「Xcode」 開発したアプリをApp Store内で配布するための「Developer ID」 |
統合開発環境とは?
ファイル管理から、コンパイル、ビルド、デバッグ、実機検証まで、アプリ開発の工程を一貫してサポートしているため、統合開発環境(IDE)とも呼ばれています
【歴史】
Apple製品のアプリ開発には「Objective-C」というプログラミング言語が用いられていました。
SwiftはObjective-Cと比べて、シンプルで理解しやすく、動作も軽量なプログラミング言語です。
現在ではObjective-Cに代わってアプリ開発における主流の言語です。
【互換性について】
Swiftのバージョンがアップデートされると前のバーションとの互換性が無くなってしまう可能性があります
何で作った方がいいのか?
macはUNIXコードで書かれている。
PythonやRubyといった言語はUNIXコマンドラインのツールが存在しており、相性が良いといえるでしょう。
WindowsでもUNIXコマンドを利用することはできます
しかし、仮想環境を構築するなど面倒なプロセスを踏まなければなりません。
という事があり、iosで開発した方がいいです。マックを買いましょう。
XCodeの特徴
Xcode 7から開発中のアプリを無料で実機にインストールできるようになりました。
それまでは年間11,800円の登録費用を払って、Developer Programに登録する必要がありました
公開の手順とは?
・iOS Certificate(証明書)を作成。 ・Xcodeを使ってコード記述、デバッグを行う。 ・App Store Connectにアプリをアップロードするため登録を行う。 ・Xcodeから作成したアプリをアーカイブし、App Store Connectにアップロード。 ・App Store Connectへのアプリ提出のための情報を登録。 ・審査へと提出。 |
クロスプラットフォーム開発
iOSとAndroidの双方のプラットフォームに一つのプログラムで対応する手法をクロスプラットフォーム開発と呼びます。
双方のプラットフォームに対応するアプリを作成し、総開発コストの抑制を図ることが可能です。
単一のプログラムで複数の動作環境に対応できるクロスプラットフォームのソフトウェアが望まれています
プッシュ通知やアプリ内課金などはプラットフォームに固有の仕様が多いため必ずしもクロスプラットフォーム開発の仕組みが全てに対応しているわけではありません。
開発者登録をする
開発者登録をする
クロスプラットフォーム
おすすめのクロスプラットフォーム
Xamarin・・・windows Flutter・・・googleが開発 React Native・・・ Swift・・・アップル |
アプリの基本について
アプリ開発の基本について。
アプリを開発する場合、二つの言語について知っている必要があります。
fullterのGo言語(googleが開発)を使うと、一つの言語で両方の開発ができます。
iphone・・・swift , objectiv-c アンドロイド・・・Java , kotlin 両方・・・Go言語 |
学習時間・・・40時間程度あればできる。(他言語を知っている場合)
20日あれば大丈夫。
実際にやってみましたが、20日なんてまず無理です。swiftUIに新しく変わり、情報が少な過ぎます。
本を6冊買って、毎日開発の勉強をしていますが、全く・・・進みません。
【はまる場所】
オブジェクト指向も一緒に学ぶ必要があるので、構造体、プロパティーラッパー、クラス、プロトコルではまります。
Viewについての概念も、はじめは意味不明部分です。
swigtUIのVIewとUIKitのビューがどう違うのか? なぜ、変わったのか?を知るまで時間がかかります。
swiftの学び方
Swiftとは何か?
2014年から使われている言語の事。obhectiv-cをさらに使いやすくしたものです。
iosを開発するのに使います。マックのパソコンがないと開発はできません。 GitHub上に Swift のシステムコードは公開されている。オープンソースなので、バグなどが発見しやすい。
2018年日本でのスマホOSシェアは、 iPhone が 約 71%、 Android が 27%です。
勉強する価値は十二分すぎるほどある。
■学び方
1.ネットで検索する
2.本を読む
3.アップル公式リファレンスを見る
4.youtube
この3つの方法が基本となる。が、読み方が最初は分からない。
とにかく、動くソースコードを探し、コピペして徹底的に調べるしか方法がない。
公式リファレンスは、いきなり見るとナゾが多すぎます・・・
初めて学ぶ人には何が書いてあるのか? FGfloat、intってなんだよ!!となる。
そこで、参考となるサイトを紹介>>
おすすめの本
はじめて学ぶ場合、以下の本が役に立ちます。
私が買って読んでいるのは、上記の本です。
ちなみに、mapについての記述が少なく。MapKitについての知識、GPSについての知識については本にあまり書いてないので、サイトで調べるしかない。
探すのに凄く時間がかかるので、覚悟をしておいた方がよい。
【逆引きができるサイト】
上記は古いので、使えない事が多すぎるような^^;
【動画で学ぶ】
動画で学ぶなら、youtubeで検索するのがおすすめです。
「swift」
動画学習すならUdemyがおすすめです。現役のエンジニアが教えてくれています。
【言語の仕様について】
swiftは「;」がいらない。
【考察】
言語の違いについてだが、ちょっとの違いしかない。基本の動き方については同じ。
最新のものは、リファレンスが少ないので、公式リファレンスを読むしかない・・・
ここが読みこなせるか?が開発のキモとなりそうです。
xcodeの注意点
xcodeはダウンロードするときに注意が必要になります。
ダウンロードができない問題があります。
どうしたらいいか?については、こちらをご覧くださいませ。
リファレンスの読み方
iOSアプリを自由自在に開発するためには、公式リファレンスを読む力は必須です。
言語新しいのでは、他の言語に比べて日本語解説サイトがほとんどないからです。
topicsを見る
init(frame: CGRect)
「UIViewを生成する際は、必ずCGRectを定義せよ」という意味になりますリファレンスページのinit部分には「生成時に必要なもの・定義の仕方」が書かれている。
がしかし、初心者には、これが読めない。
作っているうちに、「そういう事なのね」となってくる。とにかく作るしかない。
マイナーな部品を生成したい時、リファレンスページのinitは役に立ちます
https://docs.swift.org/swift-book/
構造体
まずは、構造体についての理解が必要。
structにはいろいろな型、関数を入れる事ができる。
・複数の値を一個の構造体で管理できる(ストアドプロパティの組み合わせによって一つの値を表す) |
継承できないクラスのようなもの。
ページを作るときにすごく使う。C言語のstructについて学ぶと理解が深まる。
プロパティ
プロパティとは?
・ストアドプロパティ ・コンピューテッドプロパティ ・インスタンスプロパティ ・スタティックプロパティ ・クラスプロパティ |
と色々ある。
【分類方法】
再代入のできるか?による分類 (varとlet) |
ストアドプロパティ
ストアドプロパティとは
特定のクラスや構造体のインスタンスの一部として、シンプルな形式で保存される定数、変数のこと。
値の変更を「監視する」プロパティオブザーバーという機能が備わっています
class クラス名{ |
struct Nanika { |
クラスでストアドプロパティを定義する時は、初期値を設定しましょう。
初期値がないと、「initメソッドを定義して初期化してください」というコンパイルエラーが発生します。
【参照】
プロパティ(ストアドプロパティとコンピューテッドプロパティ)
コンピューテッドプロパティ
コンピューテッドプロパティ
自分自身は値をもっていない。計算した値を返してくれます。
computedプロパティには、 読み取り専用のgetメソッドと書き込み用のsetメソッドがあります。
定義するにはプロパティ名のあとに{}を書き、その中にgetキーワードでゲッタを、setキーワードでセッタを記載します。
setスコープ内では、設定される値に「newValue」でアクセスできます。
ゲッタの定義は必須ですがセッタは任意です。
【いつ利用するのか?】
外部から変更されたくないプロパティを設定するときに使えそう。
var プロパティ名: 型名 { プロパティの値を返す文 |
上記のコードで一つのプロパティ
class AreaOfTriangle { var base: Int
init(base: Int, height: Int) {
var triangle: Int { get{ |
returnした値がtriangleに格納される。
getterのみの場合はget{}を省略できる。
getが読み込み専用というのはtriangleという変数そのものに値を代入(格納)することができないため。
アクセスすることしかできない。
タプル
Tuple を使うと複数の変数をまとめ上げたり、 ひとつの変数に分かりやすい意味を与える事ができる。
var hito = ("Makio", 25) |
ラベルを付ける事もできる
var hito = ("name:Makio",age: 25) |
【参照】
@State
@State
SwiftUIでのViewは「struct」であるため保持する「プロパティ(中身)」を変更することができません。
そこで、@Stateの出番です。
@Stateを付与したプロパティはメモリ管理がSwiftUIフレームワークに委譲され、変更が可能となります。
プロパティは値の変更が監視され、変更時に宣言されたViewのbodyが再描画されます。
ただし、そのプロパティへのアクセスは宣言されたView内でのみとなります。(プライベートってことか?)
値が変更されるようなアクセスでは’$’を付与する必要があります。
一つのViewでのみ利用できます。
Toggle、Buttonを使うときは必ず必要になるので、意味と概念をしっかり覚えておくとよい。 |
関数とは
「ひとかたまり」にした処理の事。計算などができる。
引数=入力
戻り値=出力 と覚えると、わかりやすいです。
func 関数名(引数ラベル1 引数名1: 型, 引数ラベル2 引数名2: 型, ...) -> 戻り値の型 { ~処理~ return 戻り値 |
戻り値の型を指定して書くのが、swiftのようですね。
func makeUIViewController(context: Context) -> UIPageViewController { return pageViewController |
関数名:makeUIViewController
引数:型=context: Context
戻り値の型:UIPageViewController
戻り値 pageViewController
【はまった部分】
戻り値の型っていうのが、意味不明だった。
メソッドから呼び出し元へ返す値を戻り値といいます。計算した値を、引き渡すイメージをすると良い。
となります。
戻り値がある場合、ない場合など色々なパターンがあるので、覚えましょう。
プログラミング教室KOTONOHAさんが分かりやすいと思います。
話し方も、説明も抜群にうまいので、ぜひ動画を見る事をおススメいたします!!
SwiftUIとは
リアルタイムでViewを確認できる。
タップ、ジェスチャー、画面のデザインなど、いろいろとできる。
・VIew
UIKitと画面更新方法などが違っているので、注意が必要。
UIKitとは
色々とカスタマイズして、画面を作れる。
・iOS系のアプリを構築するために必要なクラスを提供してくれるライブラリ(フレームワーク).
・こいつの習得が一番難しい.
・とにかくどんなものが提供されているかを知るために, とにかく作るのみ
UIResponder クラスを継承しています。コードのどこからでもアクセスできます
アプリケーションデリゲート
UIApplication をカスタマイズできます。
_
_とは何か?
マークについて
swiftUIについて
[M]・・・変更が加えられたファイル
[A]・・・追加されたファイル
[?]・・・ソースコード管理外 および バージョン管理外
参照サイト
参照したサイトについてご紹介します。とても分かりやすく情報がまとまっていますので
ぜひ参考にしてみてください。
プロパティ(ストアドプロパティとコンピューテッドプロパティ)
大変申し訳ありませんが、当社ではサービスの質を落とさないために、月の契約は5件までとさせていただいております。 契約をお待ちいただく可能性もございますので、ご了承のほどよろしくお願いいたします
この記事を読んだ人は、こんな記事も読んでいます
SEO対策の基本 外部要因とは?
SEO対策の基本的である、外部要因とは何か?
SEO対策をするなら絶対に知っておきたい、基本知識です。
売れるサイトを作るのに知って起きたい知識
サーチエンジンマーケティングという言葉をご存知でしょうか?
ホームページで商品やサービスを売る時に知っておきたいマーケティング
についてご紹介いたします。
SEO対策をする5つのメリットとは?
なぜ上位表示させることが大事なのか?なぜSEO対策をする必要があるのか
についてご紹介させていただきます。
SEO対策の内部要因とは?
上位表示させるためには、内部要因について知っておくことも大事です。
キーワードを上位表示させるために必要なのは、ソースコードを最適化することです
内部要因の対策について知りたい方はこちらへ
キーワード対策をする前に
そのキーワード対策。ちょっと待ってください。
そのまま対策をすると、必ずお金を損してしまいます。個人事業主や中小企業は
そんな大きなキーワードで対策をしてはいけません。
広告費用が高くなる本当の理由とは?
売れないサイトに集めていませんか?広告費用がかかるわりには
お問い合わせが少ない・・・と感じる方は多いはずです。
購入率の悪いサイトに集客をしている可能性があります。