RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

イベント詳細についてはこちらをクリック

Swift初心者がとりあえずXcode触ってみた

あけましておめでとうございます!新卒1年目のrs_chankoです。
今回はXcodeを触ってみた話をしたいと思います。

はじめに

就職してもう少しで一年、配属されて半年が経ちました。
自分のチームではアプリの開発も行っているのですが、
いかんせんあまり勤勉でなかった私は学生時代EclipseJavaを扱うのがほとんどでした…。

そこでこれからやるであろうアプリ開発についてどうやって学習しようか考えていたのですが、
触ってみないことには始まらない!と思い立ち
まずはXcodeとSwiftに慣れるためにサンプルプログラムを組んでみることにしました!

↓こちらが参考にしたサイトです。 https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/index.html#//apple_ref/doc/uid/TP40015214-CH2-SW1developer.apple.com

こちらはApple公式のチュートリアル用ドキュメントです。
簡単な話、開発環境さえあればコピペぺたぺたすればアプリができてしまいます。

なので今回は実装方法などよりも、GUIにあまり触れたことのない初心者が触ってみた感想について書いていこうと思います。

Xcodeの所感

  • ストーリーボードによる直感的な操作
f:id:rs_chanko:20200111194655p:plain:w300

こちらが実際に作成したアプリの画面です。
これがなかなか直感的で分かりやすい。(GUIだしそれはそう)
これを実行すると…

f:id:rs_chanko:20200111202535p:plain:w300

こんな感じでシミュレータが起動します。
そのまま実際に動かした時の挙動を再現できるのも便利でした。

エディタの右側のメニュー上でUIパーツのサイズや配置場所の指定や、
他機能との接続をすることで、自動的にソースコードが書き変わります。
画面を作成する段階で私は全くSwiftを理解していませんでしたが簡単に画面を作ることができました。
簡単で画面遷移があまり多くないアプリであればこのように直感的に操作ができると作ってみたくなりますね。


  • Unit Test

Xcodeは、クラス作成時にUnit Testのターゲットに選択するかのプロパティが存在します。
それさえ選択しておけば、Javaのようにインスタンス化したり…のような操作をせずに、
Testクラス内でクラス名.メソッドを呼ぶだけでテストを実行することができます。
こちらが実際に使ったメソッドです。

//MARK: Meal Class Tests
// Confirm that the Meal initializer returns a Meal object when passed valid parameters.
func testMealInitializationSucceeds() {
    // Zero rating
    let zeroRatingMeal = Meal.init(name: "Zero", photo: nil, rating: 0)
    XCTAssertNotNil(zeroRatingMeal)
         
    // Highest positive rating
    let positiveRatingMeal = Meal.init(name: "Positive", photo: nil, rating: 5)
    XCTAssertNotNil(positiveRatingMeal)
}

このように、簡単にテストケースを作成することができます。
お気軽にUnit Testができるのはとてもありがたいです。


  • 戻るや確定のようなsubmit系ボタン
f:id:rs_chanko:20200113153710p:plain:w500

こちらのようなCancelSaveのようなボタンはiOSのアプリでよく見かけますね。
こちらもSwiftのコードを書かなくても実装することができます。
Bar Button Itemを使用して、属性タブのSystem Itemを変更することで挙動を選ぶことができます。
他の言語では○○に遷移するのような書き方をしていたので革新的な気持ちになりました!


Swiftの所感

  • 今時の言語

Swiftの特徴は型推論がされるところです。
JavaでもJava10から型推論が導入されていますが、
Java8を使用している筆者からすると扱いやすくもあり扱いにくくもありと感じました。
コードはすっきりするものの、突如渡されたコードの変数の型を理解するためにコードを読まないといけないのか…とも感じました。


今回サンプルアプリの作成では使用しなかったのですが、
XcodeでSwiftのコードを書く際にPlaygraundという機能を使うことができます。

f:id:rs_chanko:20200113161351p:plain

このようにリアルタイムでコンパイルをして実行結果を表示してくれる機能があります。
実際に求めている結果が表示されているのかが確認できてとても便利です。


おわりに

ただの感想文になってしまいましたが、Xcode、Swiftの所感でした。
今後は業務の開発でも触れていく(予定)なので、
プライベートで自分で何かしら開発をしてそれについて書けたらなと思います。

それではまたの機会に。

Copyright © RAKUS Co., Ltd. All rights reserved.