質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

530閲覧

Swiftについて(実務関係)

Ytan

総合スコア39

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/05/15 10:06

編集2020/05/15 10:07

Swift学習にあたりただいま実践入門の書籍にて学んでおります。
それにあたり疑問に思ったのですが、今現在、Swift初心者へのオンライン学習サイトの有名どころはドットインストール以外CoCoaを利用しての開発となっているとは思うのですが、実践入門を読み進めていると明らかに初心者入門サイトでは一切使われていないものが多く出てきます。(構造体、列挙型など)

それにあたり疑問の思ったのですが、cocoa以外で実務で依頼されることは少ないのでしょうか?
それとも逆にアプリ開発においてあまり複雑なことをできないPlayground?では実務では使うことの方が少ないのですか?初心者はアプリ開発に夢見ているがためにudemyなどでお金になるからcocoaを使っているということですか?

実務も経験したことはありませんし、もしかすると無知を晒しているのかもしれませんが教えてもらいたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TsukubaDepot

2020/05/15 10:19

ここで使われている「CoCoa」というのは、「CocoaPods」のことでしょうか?それとも、macOSのフレームワークとして提供されている「Cocoa」のことでしょうか。 また、書籍名が「実践入門」ということですが、これは「改訂新版 Swift実践入門(石川洋資・西山勇世著)」のことでしょうか。
hoshi-takanori

2020/05/15 10:25

多くのオンライン学習サイトでやる内容は、アプリ開発のほんの入り口にすぎないと思います。本格的なアプリを開発するのであれば、構造体や enum は当然必要になります。
TakuyaAso

2020/05/15 14:13

基本は大事でプラスで徐々に勉強していけばいいですよ。
Ytan

2020/05/15 16:50

改訂新版 Swift実践入門 石川洋資・西山勇世著のことです。 自分的にはCocoaPodsのことを指しております。CoCoaとは違うのですね。 自分で成果物(Xcodeで)を製作したい場合、このような知識が必要になってくるということですか? まだCocoapodsでのアプリ製作しか行なっていないので、少し疑問におもいました。 皆様回答ありがとうございます。
guest

回答1

0

ベストアンサー

「改訂新版 Swift実践入門(石川洋資・西山勇世著)」はSwiftの文法解説本です。ただ、この本のターゲットとしては他の言語を一通りマスターしている人をターゲットに書かれているため(巻頭言より)、文法の詳細や理論というよりも、書籍名通り応用に中心を置いている本です。

一方、Cocoa やそれを iOS や tvOS 向けなどに拡張した Cocoa Touch は Swift や Objective-c などで記述された**フレームワーク(ライブラリ群)**です。単に Cocoa といった場合には、Cocoa と Cocoa Pods 両方を総称して Cocoa ということもあるようです。

フレームワークはApple以外にも個人を含めた多くのプロジェクトによって提供されており、CocoaPods はそれらの管理ツールという位置付けです。

したがって、

実践入門を読み進めていると明らかに初心者入門サイトでは一切使われていないものが多く出てきます。(構造体、列挙型など)

前述の通り実践入門は Swift という言語の解説本であるため、「構造体、列挙型」をはじめとするSwiftの機能が説明されています。文法解説本なので、Cocoa のことについては直接触れられていません(「実践入門」6ページの脚注にも書いてあります)。

一方、Cocoa や Cocoa Pods で入手できるフレームワーク群は Objective-c や Swift で記述されています。したがって、いままで直接的には扱っていないように思える構造体や列挙型というのは、当然本人が知らないうちに使っている可能性は否定できません。

つまり、いままではなんとなく使っていた機能が「実践入門」を読むことによってきちんとした知識として連携づけられていると考えた方が良いかと思います。

いわゆる初心者向けサイトでも構造体などについて説明されているページはありますが、ネット検索を使って必要とする機能を検索すると(たとえば tableView の使い方、といった具合に)、どうしても言語仕様よりも実践的な使い方が優先して見つかりますので、いままで気づかなかったのも仕方ないかもしれません。

cocoa以外で実務で依頼されることは少ないのでしょうか?

ここで意図したことがよく理解できていないのですが、「実務では Cocoa は使わないのか」というご質問であれば、そういったことは一切なく、実務ではむしろ様々なフレームワークを活用して開発されていると思います。

全てのアプリで確認できるわけではありませんが、「設定」から任意のアプリを選び、「著作権表示」をみることで使われているフレームワークの一部を知ることもできますし、アプリ内のヘルプに相当する部分からみることも可能です。

一般的に、エンジニアリングという分野は車輪の再発明、つまり誰かが既に作っていて十分に使えるものを新たに自分で作るという行為は避ける傾向にありますから、当然使えるフレームワークがあれば積極的に使っていくのが普通です(もちろん、機能的、法律的、価格的に難しい条件があれば再発明することになります)。

それとも逆にアプリ開発においてあまり複雑なことをできないPlayground?では実務では使うことの方が少ないのですか?

Playground そのもので実用的なアプリを作ることは困難ですが、その一方簡単な実装はすぐに試すことができるため、実務においてもアルゴリズムの検証などを Playground で行っている人も少なからずいるかと思います。

初心者はアプリ開発に夢見ているがためにudemyなどでお金になるからcocoaを使っているということですか?

ここは大きな誤解だと思います。

Cocoa はフレームワークであり、その利用については配布ライセンスに従っている限り無料のものが数多くあります。

なので、書籍であれオンライン学習であれ、Cocoa を使うことで誰かが得することがあるのかというとそういうことはありません。

問題なのは、一部の学習サイトにみられるように、「中途半端な知識だけ提供し、あとは広告先のオンライン学習サイトに誘導する」ような、明らかに初心者をカモにした金儲け目的のサイトかと思います。

自分で成果物(Xcodeで)を製作したい場合、このような知識が必要になってくるということですか?

Swift という言語の機能を活用することになるので、当然文法への理解は必要になります。

ただし、前述の通り Cocoa Pods などでダウンロードしてくるフレームワークも Swift で書かれたものが大半なので、Swiftの文法を理解していない限り、どこかで拾ってきたサンプルコードをほぼそのまま使う程度の活用方法から抜けられないと思います。

投稿2020/05/15 22:03

編集2020/05/15 22:04
TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ytan

2020/05/16 10:48

つまり、いままではなんとなく使っていた機能が「実践入門」を読むことによってきちんとした知識として連携づけられていると考えた方が良いかと思います。 という見方で学習を進めています。 まだまだ複雑なアプリを開発していませんし、cocoapodsのフレームワークでの機能の理解しか及んでいなので、基本の文法理解を深めていきたいと思います。 ご回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問