swiftとは

swiftの基本について学んでいきましょう。

2020年8月現在では、SwiftUIでの開発となっています。

 

開発環境について

swift 5.24

xcode 11.6

2020年 8/21

この状態の情報です。情報は常に更新していきます。

 

■swiftUIでの開発について

■はまった部分

canvasが表示されない

 

イニシャライザとは

DBとの接続

ログイン画面の作成

フォームの作成

状態の管理

 

 

 

参照

XCodeのヘルプ(公式)

 

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の双方のプラットフォームに一つのプログラムで対応する手法をクロスプラットフォーム開発と呼びます。

双方のプラットフォームに対応するアプリを作成し、総開発コストの抑制を図ることが可能です。

単一のプログラムで複数の動作環境に対応できるクロスプラットフォームのソフトウェアが望まれています

 

プッシュ通知やアプリ内課金などはプラットフォームに固有の仕様が多いため必ずしもクロスプラットフォーム開発の仕組みが全てに対応しているわけではありません。

 

参照>>

開発手法の比較>>

 

開発者登録をする

開発者登録をする

年間1万円を支払う

 

クロスプラットフォーム

おすすめのクロスプラットフォーム

 

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の学び方

Swiftとは何か?

2014年から使われている言語の事。obhectiv-cをさらに使いやすくしたものです。

iosを開発するのに使います。マックのパソコンがないと開発はできません。 GitHub上に Swift のシステムコードは公開されている。オープンソースなので、バグなどが発見しやすい。

 

2018年日本でのスマホOSシェアは、 iPhone が 約 71%、 Android が 27%です。

勉強する価値は十二分すぎるほどある。

参照サイト>>

 

■学び方

1.ネットで検索する

2.本を読む

3.アップル公式リファレンスを見る

4.youtube

 

この3つの方法が基本となる。が、読み方が最初は分からない。

とにかく、動くソースコードを探し、コピペして徹底的に調べるしか方法がない。

 

公式リファレンスは、いきなり見るとナゾが多すぎます・・・

初めて学ぶ人には何が書いてあるのか? FGfloat、intってなんだよ!!となる。

 

そこで、参考となるサイトを紹介>>

 

アップル公式リファレンス

apple 公式リファレンス>>

UIKit 日本語リファレンス>>

 

 

おすすめの本

はじめて学ぶ場合、以下の本が役に立ちます。

 

本気ではじめるiPhoneアプリ作り Xcode 10.x対応

SwiftUI 徹底入門(すごくオススメ)

SwiftUI iPhoneアプリ開発入門ノート

基礎から学ぶ SwiftUI

Swift 第5版 (日本語)

 

私が買って読んでいるのは、上記の本です。

ちなみに、mapについての記述が少なく。MapKitについての知識、GPSについての知識については本にあまり書いてないので、サイトで調べるしかない。

探すのに凄く時間がかかるので、覚悟をしておいた方がよい。

 

 

【逆引きができるサイト】

Swift Docs

上記は古いので、使えない事が多すぎるような^^;

 

【動画で学ぶ】

 

 

動画で学ぶなら、youtubeで検索するのがおすすめです。

「swift」

 

動画学習すならUdemyがおすすめです。現役のエンジニアが教えてくれています。

 

【言語の仕様について】

swiftは「;」がいらない。

 

【考察】 

言語の違いについてだが、ちょっとの違いしかない。基本の動き方については同じ。

最新のものは、リファレンスが少ないので、公式リファレンスを読むしかない・・・

ここが読みこなせるか?が開発のキモとなりそうです。

 

xcodeの注意点

xcodeはダウンロードするときに注意が必要になります。

 

xcodeの注意点

 

ダウンロードができない問題があります。

どうしたらいいか?については、こちらをご覧くださいませ。

 

 

リファレンスの読み方

iOSアプリを自由自在に開発するためには、公式リファレンスを読む力は必須です。
言語新しいのでは、他の言語に比べて日本語解説サイトがほとんどないからです。

 

topicsを見る

init(frame: CGRect)

「UIViewを生成する際は、必ずCGRectを定義せよ」という意味になりますリファレンスページのinit部分には「生成時に必要なもの・定義の仕方」が書かれている。

 

がしかし、初心者には、これが読めない。

作っているうちに、「そういう事なのね」となってくる。とにかく作るしかない。

 

マイナーな部品を生成したい時、リファレンスページのinitは役に立ちます

 

リファレンスの読み方参照>>

https://docs.swift.org/swift-book/

 

構造体

まずは、構造体についての理解が必要。

structにはいろいろな型、関数を入れる事ができる。

 

・複数の値を一個の構造体で管理できる(ストアドプロパティの組み合わせによって一つの値を表す)
・クラスは「参照型」、構造体は値型
・イニシャライザも関数も使用可能

 

継承できないクラスのようなもの。

ページを作るときにすごく使う。C言語のstructについて学ぶと理解が深まる。

 

 

プロパティ

プロパティとは?

 

・ストアドプロパティ

・コンピューテッドプロパティ

・インスタンスプロパティ

・スタティックプロパティ

・クラスプロパティ

 

と色々ある。

 

【分類方法】

再代入のできるか?による分類 (varとlet)
値の保持できるか?による分類 (ストアドプロパティとコンピューテッドプロパティ)
紐付く対象は何か?による分類

 

プロパティ参照>>

 

ストアドプロパティ

ストアドプロパティとは

特定のクラスや構造体のインスタンスの一部として、シンプルな形式で保存される定数、変数のこと。

値の変更を「監視する」プロパティオブザーバーという機能が備わっています

 

class クラス名{
var プロパティ名 = 値
let プロパティ名 = 値
}

 

struct Nanika {
var suzi = 123 //再代入可能
let constant = 456 //再代入不可
static var staticVariable = 789 //再代入可、型自身に紐づく
static let staticVariable = 890 //再代入不可、型自身に紐づく
}

 

クラスでストアドプロパティを定義する時は、初期値を設定しましょう。

初期値がないと、「initメソッドを定義して初期化してください」というコンパイルエラーが発生します。

 

【参照】

ストアドプロパティとは>>

プロパティ(ストアドプロパティとコンピューテッドプロパティ)

 

コンピューテッドプロパティ

コンピューテッドプロパティ

自分自身は値をもっていない。計算した値を返してくれます。

computedプロパティには、 読み取り専用のgetメソッドと書き込み用のsetメソッドがあります。

詳細はこちら>>


定義するにはプロパティ名のあとに{}を書き、その中にgetキーワードでゲッタを、setキーワードでセッタを記載します。

setスコープ内では、設定される値に「newValue」でアクセスできます。

ゲッタの定義は必須ですがセッタは任意です。

 

【いつ利用するのか?】

外部から変更されたくないプロパティを設定するときに使えそう。

 

var プロパティ名: 型名 {
get {

プロパティの値を返す文
}
set(仮引数) { //仮引数は省略できる
値を更新処理
プロパティの値を更新する文
}
}

 

上記のコードで一つのプロパティ

 

 

class AreaOfTriangle {

var base: Int
var height: Int

 

init(base: Int, height: Int) {
self.base = base
self.height = height
}

 

var triangle: Int {

get{
return base * height / 2
}
}
}

コードの参照>>

 

returnした値がtriangleに格納される。
getterのみの場合はget{}を省略できる。

 

getが読み込み専用というのはtriangleという変数そのものに値を代入(格納)することができないため。
アクセスすることしかできない。

 

 

タプル

Tuple を使うと複数の変数をまとめ上げたり、 ひとつの変数に分かりやすい意味を与える事ができる。

 

var hito = ("Makio", 25)
print( hito.0 ) //Stringを保持
print( hito.1 ) //Intを保持

 

ラベルを付ける事もできる

var hito = ("name:Makio",age: 25)
print( hito.0 ) //Stringを保持
print( hito.1 ) //Intを保持

 

【参照】

タプルとは何か? >>

 

@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 {
let pageViewController = UIPageViewController(
transitionStyle: .scroll,
navigationOrientation: .horizontal)

return pageViewController
}

 

関数名:makeUIViewController

引数:型=context: Context

戻り値の型:UIPageViewController

戻り値 pageViewController

 

【はまった部分】

戻り値の型っていうのが、意味不明だった。

メソッドから呼び出し元へ返す値を戻り値といいます。計算した値を、引き渡すイメージをすると良い。

 

となります。

参照>>

 

戻り値がある場合、ない場合など色々なパターンがあるので、覚えましょう。

 

 

 

プログラミング教室KOTONOHAさんが分かりやすいと思います。

話し方も、説明も抜群にうまいので、ぜひ動画を見る事をおススメいたします!!

シリーズ再生リストはこちら

 

SwiftUIとは

リアルタイムでViewを確認できる。

タップ、ジェスチャー、画面のデザインなど、いろいろとできる。

 

ビューとコントロール

VIew

チュートリアル

 

UIKitと画面更新方法などが違っているので、注意が必要。

 

 

UIKitとは

色々とカスタマイズして、画面を作れる。

 

・iOS系のアプリを構築するために必要なクラスを提供してくれるライブラリ(フレームワーク).
・こいつの習得が一番難しい.
・とにかくどんなものが提供されているかを知るために, とにかく作るのみ

 

 

UIApplicationクラス

UIResponder クラスを継承しています。コードのどこからでもアクセスできます

 

アプリケーションデリゲート

UIApplication をカスタマイズできます。

 

_

_とは何か?

 

 

マークについて

swiftUIについて

 

[M]・・・変更が加えられたファイル

[A]・・・追加されたファイル

[?]・・・ソースコード管理外 および バージョン管理外

 

参照はこちら>>

 

参照サイト

参照したサイトについてご紹介します。とても分かりやすく情報がまとまっていますので

ぜひ参考にしてみてください。

 

swiftの開発方法 基本>>

Swift Docs

クロスプラットフォーム参照>>

開発手法の比較>>

ストアドプロパティとは>>

プロパティ(ストアドプロパティとコンピューテッドプロパティ)

タプルとは何か? >>

 

 

大変申し訳ありませんが、当社ではサービスの質を落とさないために、月の契約は5件までとさせていただいております。 契約をお待ちいただく可能性もございますので、ご了承のほどよろしくお願いいたします

 

 

 

 

この記事を読んだ人は、こんな記事も読んでいます

 

SEO対策の基本 外部要因とは?

SEO対策の基本的である、外部要因とは何か?

SEO対策をするなら絶対に知っておきたい、基本知識です。

 

売れるサイトを作るのに知って起きたい知識

サーチエンジンマーケティングという言葉をご存知でしょうか?

ホームページで商品やサービスを売る時に知っておきたいマーケティング

についてご紹介いたします。

seo対策をするメリットとは

SEO対策をする5つのメリットとは?

なぜ上位表示させることが大事なのか?なぜSEO対策をする必要があるのか

についてご紹介させていただきます。

 

内部要因とは

SEO対策の内部要因とは?

上位表示させるためには、内部要因について知っておくことも大事です。

キーワードを上位表示させるために必要なのは、ソースコードを最適化することです

内部要因の対策について知りたい方はこちらへ

 

キーワード対策をするまえに

キーワード対策をする前に

そのキーワード対策。ちょっと待ってください。

そのまま対策をすると、必ずお金を損してしまいます。個人事業主や中小企業は

そんな大きなキーワードで対策をしてはいけません。

広告費用が高くなる理由とは

広告費用が高くなる本当の理由とは?

売れないサイトに集めていませんか?広告費用がかかるわりには

お問い合わせが少ない・・・と感じる方は多いはずです。

購入率の悪いサイトに集客をしている可能性があります。

 

 

 

 

【SEO対策・web広告・webコンサルティングのプラスワーク対応エリアについて】

プラスワークでは、東京、神奈川、千葉、埼玉を中心に全国でwebコンサルティング、SEO対策、ホームページの更新、ホームページのリニューアル運営代行をしております。売上アップをお考えならお気軽にご相談ください。

 

【SEO対策・web広告・webコンサルティングのプラスワーク 対応地域】

北海道 [ 北海道 ]

東北  [ 青森 | 岩手 | 山形 | 福島 | 秋田 | 宮城 ]

関東  [ 東京 | 埼玉 | 千葉 | 茨城 | 栃木 | 群馬 | 神奈川 ]

甲信越 [ 山梨 | 長野 | 新潟 ]

北陸  [ 石川 | 福井 | 富山 ]

東海  [ 愛知 | 静岡 | 岐阜 | 三重 ]

近畿  [ 大阪 | 兵庫 | 京都 | 滋賀 | 奈良 | 和歌山 ]

中国  [ 島根 | 山口 |鳥取 | 広島 | 岡山 ]

四国  [ 徳島 | 香川 | 愛媛 | 高知 ]

九州  [ 福岡 | 佐賀 | 長崎 | 熊本 | 大分 | 宮崎 | 鹿児島 ]

プラスワークでは全国でSEO対策、ホームページ更新、制作をしております。中小企業専門SEO対策・ホームページ更新制作会社、ダイレクト レスポンス マーケティング、ウェブ マーケティング、マーケティング 分析、口コミのよいSEO対策会社をお探しならプラスワークにお任せくださいませ。

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

フェイスブック  ツイッター