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

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

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

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

Q&A

解決済

2回答

217閲覧

機能などを実装する時の勉強方法

Rnabe

総合スコア9

Swift

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

0グッド

0クリップ

投稿2020/07/01 07:32

swift2ヶ月目の初心者です。基礎はやってきたつもりですが、機能を実装する時は基礎以外の知識が必要となります。
そこで私はネットに書いてない情報は公式ドキュメントやライブラリの説明を読みました。
ですがコードの説明を読んで「そういう意味なのか」と思うだけでコードは書けません。
RealmSwiftは2週間必死にコードを書いてみたり動画をみたりしましたが、全然扱えず結構へこみます。
2ヶ月やっても勉強方法は全くわからず、この先不安でしかないです。

質問

アプリ開発する上で公式ドキュメントを読むしかないのは明らかですが、そこからコードを書くのに流れ的なものはあるのでしょうか?
20時間ほどで一つの機能(RealmSwift等)を実装できずに凹んでいるのは甘い考えですか?

時々くる不安から質問をさせていただきました。もし甘いなら「そんな短時間でできるわけない」と厳しくいってもらって大丈夫です。

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

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

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

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

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

hoshi-takanori

2020/07/02 02:01

Realm に限らず、データの永続化は難しいテーマなので、初心者がたったの 20 時間で使いこなせたらむしろ天才ですね。特に、Realm はいろんなことを自動化して短いコードで書けるようにしてくれる一方、独自の作法も多いので…。 学ぶべきポイントですが、 ・一般論として、自分の扱いたいデータをデータ構造として設計できること ・使用する言語 (Swift) のクラスや構造体などがメモリ上にどのように配置されるか ・一般論として、データをストレージに読み書きするとはどういうことか ・使用するライブラリ (Realm) が、どのようにデータを取り扱うか ・アプリの設計として、データをどこでどう取り扱い、UI と連携させるか など、たくさんあります。2 週間どころか、普通に年単位の時間がかかると思った方がいいでしょう。
Rnabe

2020/07/02 02:40

なるほど。やはり考えが甘すぎたようですね。 モチベーションが上がるコメントありがとうございます????‍♂️ 焦ることなく頑張ろうとございます!
guest

回答2

0

ベストアンサー

始めに、独断と偏見の回答になることをご了承ください。
(質問の内容的に主観がどうしても入ります)

機能を実装する時は基礎以外の知識が必要となります。

知識は、ない場合はひたすら、調査です。
というか、現場でも、新機能とか実装する時は、今までの知識があったとしても、
新しい知識、まだ身についてない技術が入りようになるので、
どんなに経験しても、それは必要なんです。

さて、本題です。
基本はわかるが、実装ができないと言う人の多くは、
要件定義ができていない人と思われます。
なぜなら、これができれば、多くの実装は後はただやるだけになりますので。

例えば、
チャットアプリを作りたいとしましょう。
であるならば、要件は下記になります。

  • チャットをする際のUI
  • サーバー間通信、プッシュ通知
  • 会員制、そのシステム

もっといっぱいあるかもしれませんが、上記が最低限必要な機能としましょう。

あとは、さらに細かく要件を絞っていきます。
UIはLINEっぽいやつで、それをやるには、UIViewControllerではこれをやって、
それをやるにはどれが必要で・・・といった具合に。
そこまで絞れば、大まかな機能ではなく、機能単体での調査が可能になりますので、
よほど頓珍漢なキーワードでなければ、絶対何かしら見つかります。

そして、そのUIについて、調査と実装を終えたら(もしくは同時並行で)次の要件をまた分割して、
細かい要件を絞っていきます。

というように、作りたいものに対して、
要件を細分化していくのが、ある大枠の機能を実装していくことに直結していくんです。
大枠の機能をそのままの言葉で調べたって、方法が出てくるわけがありません。
なぜなら、その大枠の機能は、まだ世に出てないんですから。
そして、既存の機能とか細分化したものを組み合わせて新しい機能を作るもんですしね。

スティーブジョブスは、iPhoneの3Dタッチを開発する際、他のエンジニアや、会社が、
一つの機能だけで実装しようとして、ことごとく失敗していたのに対し、
いくつかの既存の技術を組み合わせて、実装しました。

  • 歪むガラスで、圧力の強さを特定
  • 既存のタッチパネルで、タッチ箇所の特定

を使って、3Dタッチを実装しました。
コロンブスの卵ではありますが、
一つの機能でまとめてやろうとしていたら、いつまで経っても完成していなかったと思われます。

これも、要件定義がしっかりとなされているからこその完成と言えましょう。

なので、知識もそうなんですが、
まず、実装したい機能の要件定義をやれるように目指されてはいかがでしょうか?

投稿2020/07/01 08:25

編集2020/07/01 08:31
miyabi_takatsuk

総合スコア9528

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

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

TsukubaDepot

2020/07/01 08:30

> まず、実装したい機能の要件定義を、まずはやれるように目指されてはいかがでしょうか? これですよね。
miyabi_takatsuk

2020/07/01 08:31

ですね。 これやれればあとはいくらでもやりようあると思います。
Rnabe

2020/07/01 09:05

2週間の試行錯誤の中で、取り入れたい機能専用のアプリを作って、 機能の細かい流れはiPadを使って図を書いて、コードを書いてエラーが出て調べて、でもわからなくて...... このやり方は間違ってなかったのですね????。救われた気がします。 もっと気合を入れて頑張ろうと思います。ありがとうございました。
miyabi_takatsuk

2020/07/01 09:09

正当にやれてると思いますよ。 エラーが出る、うまくいかない、そんなの日常茶飯事です。 それでもあきらめないでやり切るから、いいものができるんだと思います。 どうか、頑張って。
m.ts10806

2020/07/01 11:31

Swiftに特化しなければ幾らでも参考になりそうな質問・回答は見つかるのに・・・
Rnabe

2020/07/01 12:27

なるほど。アプリ開発特有の悩みかと思ってました。 参考にさせていただきます????‍♂️
Rnabe

2020/07/02 02:36

わざわざそこまでしてくれて頭が上がりません????。 独学でそのようなことを教えてくれる人がいないので本当に助かります????‍♂️ 常に心にその思考を置いておきたいと思います。
guest

0

アプリ開発する上で公式ドキュメントを読むしかないのは明らかですが、そこからコードを書くのに流れ的なものはあるのでしょうか?

定型的な流れというものはないかと思いますが、多くの方は「何らかのサンプルコード」を作ることで実装方法を学習しているのだと思います。

逆に質問です。

質問者さんは何らかの理由があって RealmSwift を学習しているのだと思いますが、その理由は何でしょうか。

「こういう理由があるから使いたい」という目的があれば、ある程度学習したらそれを実装すべく簡単なアプリを作ってみるのが一番いいのではないでしょうか。

そういう過程を得ることで具体的な問題点を発見したし、整理したり、あるいは解決するものだと思っています。

逆に、積極的に扱う理由もなく、単に漠然とやっているのであれば、身近な疑問として生まれるものは少ないでしょうし、それは身につけにくいかもしれません。

投稿2020/07/01 08:28

TsukubaDepot

総合スコア5086

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問