見出し画像

クライアントにSwift欲しいって言われたら聞いておく内容4選

アプリ大好きACWEB木村です!
営業のノウハウみたいなのが続いてしまいましたが、
本来の得意分野は営業としてITスキルをどこまで理解すべきか。
なので戻します!

ということで、本日はみんな大好きiPhoneのアプリを作るための言語

【【【【 Swift 】】】】

様の中級編まで抑えていきます!目次。

■MVVM/MVP/MVC
■非同期処理
■画面実装フレームワーク
■DB
■最後に


■MVC/MVP/MVVM

アーキテクチャーのこと。
アプリに限った話ではないですのでさらっと説明しちゃうのですが、システムを

①処理(Model)
②伝達(Controller/Presenter)
③画面(View)
※VM=(View+Model)

という機能ごとに切り分けて開発していくことです!
メリットはそれぞれの機能を独立してさせるため、開発が楽&追加開発がしやすいことが挙げられます。

覚えとくと良いのは下記3点(中身を理解するには後述も必要です)

・現代のMVCとMVPはほぼ一緒
→「MVC分かればMVP分かりますよね?」

・MVVMが使える≒非同期処理が出来る
→「RxSwiftかConbineって使ったことあります?≒MVVM分かる?」

クリーンアーキテクチャの中にMVCやらMVVMが含まれる



■非同期処理

出ました。ひどうきしょり。※今後漢字はふりがなつけないです!
非同期については超簡単に言うと、(ページを変えずに)どっかのタイミングで次必要そうな情報を勝手に読み込んでくれるって処理です。

zozo townのローディング時出てくるやつ

zozoさんのアプリを一気にスクロールするとギタリストが動いてるの出た記憶ってないですか??
あれ、読み込み処理が追いついてない時に代わりに出してるんですよね。
IT領域の視点では飽きさせないUXが素晴らしいってなるやつです。

①RxSwift(アールエックススウィフト) 
Reactive Extension Programing(⇦たまに案件概要にある)の一つです。
簡単に言うと非同期処理(≒MVVM)が発生する時に使うSwiftの書き方です。
ただのSwiftができてもRxSwiftができる訳じゃないです。むずいです。

②Combine(コンバイン)
RxSwift難しくね?って思っていたのが、超簡単にかけるやつ(一応フレームワークの一種)。
RxSwiftの方が便利だったんですが、パワーアップされたことによりポピュラーに。
正直Rx書き方ややこしいのでフレームワーク使ってやっちゃおうというってなってるそうです。



■画面実装フレームワーク

前提ネイティブアプリ作る際には機能に応じていろんなフレームワーク(ライブラリ)を駆使します。
画面を作るなんてほぼ全てのアプリで必要なので、大概どこでも使われてるのが以下2つ。

①Swift UI(スウィフトユーアイ) 
比較的新しいFW。前からあるけど、そろそろ爆発的に使われ始めるかも。
「最近新規開発だったらSwiftUIとか使いました?」とかって経歴書見ながら質問できたらok。
画面側は比較的簡単な業務とされるけど、出来る人は重宝されます。

②UIKit(ユーアイキット)
ちょっと古いFW。Storyboradってツールと一緒に使う。



■DB

DB(デービー)って聞くとMySQLとかPostgrSQLとかイメージ出来るあなたは素晴らしい!!
ただ、今回はそのDBと別にネイティブアプリではDBを使います。
RDBMSとか複雑なことは省きますので、2つ使うって覚えていいです!

①Realm(レルム)
Swfitで使われる超王道DB。
「アプリ側のDBはRealmでした?ご自身で構築されました?」
でokだったらまぁSEレベルでしょう。

②CoreData / SQLite
昔使われまくったDB。既存サービスなら使われてることもあるけど。。
2020年以降の新規開発で使ってたらえっ?ってなっても良き。



■最後に

渋々4選にしましたが、他にもSwiftの環境で確認できた方がいいツールってまだまだあるんです。。
ただ、新しい/古い王道の技術を理解するのがわかりやすいので、せめて上記がSwiftと言われて思い浮かぶようになるとお客さんとの意思疎通を取れるようになります!
Swiftの人材ってなかなかいないと思いますが、いた時にちゃんと判断できてゴリ押し出来るようになっていきましょう!


この記事が気に入ったらサポートをしてみませんか?