マガジンのカバー画像

孤独な試作者の夢想

61
日々の実践・作ったものなどについて書いていきます。
運営しているクリエイター

#swift

プログラミング学習の二歩目は「繰り返し」?それとも「関数」?

プログラミングの学びの最初のステップは大概「核となるコマンド(命令)」を実行するものです。 例えば、 Codemonkeyの最初のステージ然り、 Swift Playgroundsの「コードを学ぼう」然り。 最初の一歩は楽しく、かつ簡単に始められます。 しかし、その次のステップ、すなわち「二歩目」はいろいろな方法が模索されています。 今回は、プログラミング学習の二歩目について考えてみましょう。 コマンドの次に学ぶことコマンドの使い方、つまり 「使い手が意図した

「命令」よりも「道案内」 プログラミングにまつわる用語を考える。

どんな分野にも関係する用語があるものの、なかなか分かりづらいものばかり。 プログラミングに関しても用語がさまざまありますが、それぞれの用語をそのまま出しても理解を得るにはちと難しいところがあります。 具体的に例を挙げるとこんな感じ。Swift Playgroundsのサイトに掲載されている基本用語は下記のとおりです。 * コマンド:命令 * ファンクション:関数 * ループ:繰り返し * パラメータ:引数 * イフ文:条件分岐 * バリアブル:変数 * オペレータ:演算

Swift Playgroundsのコンテンツが大幅アップデート!(2)【センサーを学ぶをやってみた】

Swift5.0対応の「センサーを学ぶ」では、iPadに搭載されている様々なセンサーを活用して、プログラムにデータを送ることができます。 「センサーを学ぶ」で対応するセンサーは下記のとおりです。 音・ノイズ(マイク) 画面上の動き(タッチセンサー) 明るさ、色(iPadのカメラ) センサーとはそもそも何なのかセンサーは音や光、接触などの物理的現象に応じて、電気的抵抗が変化する素子です。 簡単に言うと、センサーを流れる電流が、音センサーだったら音に応じて、光センサーだっ

Swiftでタイピングアプリ制作(6)〜Cloud Firestoreを使う②〜

さて、5/16から少し寝かせていたタイピングアプリ制作のエントリですが、ようやくこちらに着手する時間ができたので、なんとかFirestoreを使えるようにならんものかと思案し、できるようになりました! 前回のできなかった記事はこちら。 基本的には、GameViewController.swiftの「タイピングをした後に結果がでる」コードの部分にFirestoreのコードを追加するというものです。 丹念にエラーコードを見ると、原因も見えてきました。 原因1:書き込むファ

Swiftでタイピングアプリ制作(5)〜Cloud Firestoreを使う①〜

さて、ようやくFirebaseに接続することができた前回でした。 今回はようやく接続することができたので、ログを保存するために、Cloud Firestoreを接続するところまで実装したいと思います。 データベースを作成する。 まず、Firebase Consoleにアクセスして、今回制作しているプロジェクトを開きます。リンクは↓ 左のメニューバーにある「Database」を押します。「Database」とは、わたしたちのデータをオンライン(Firebase)に保存して

Swiftでタイピングアプリ制作(4)〜Firebaseを導入する②〜

前回の記事では、Firebaseのために必要なファイルを導入させるところまで記事にしました。ターミナルその他の使い方がわからないと若干厳しくもありましたが、ひとまず、必要なファイルは入れられたはずです。 さて、前回実はインストールできていたようで、エラーメッセージが出ており、インストールはできていませんでした。 XCode 10, iOS 12.2, Swift 5で開発していますが、 下のようなエラーコードを吐いていたので、修正をしました。 [!] The plat

Swiftでタイピングアプリ制作(3)〜Firebaseを導入する①〜

前回の記事ではキーボードのログ、とまでつくることは難しかったのですが、タイピングしたテキストの変遷を記録することができました。 今回は、FirebaseというBaasを使います。簡単に言えば、データを保存したりする場所をつくってくれるサービスです。 まずはプロジェクトを作成しましょう。FirebaseはGoogleのサービスなので、Googleのアカウントを作り、下記のリンクにアクセスします。 アクセスをしたら「プロジェクトを追加」を押します。アプリの名前を入れて、新し

Swiftでタイピングアプリ制作(2)〜キーボードのログを取る〜

前回は下準備にだいぶ手間取りましたが、ひとまずキーボードを表示させるところまでつくることができました。 タイピングを練習するにあたって、可能な限り現実のタイピングに近いものとしたいので、「様々な長さの文章」を練習できるようなシステムにしたいと思います。 世の中の多くのタイピングアプリは単語が出てきてそれを打って、打ち終わったらクリア。ある程度の時間が経ったら、終了してどのくらいのスピードだったか計測されます。 様々な長さの文章を打つことで、文脈のある文章や、簡単な練習法

Swiftでタイピングアプリ制作(1)〜下準備編〜

Swift言語で、iPadでタイピングの練習をすることができるアプリを制作しよう!ということで、まずは下準備、どんな構成にするかも(妄想も)含めて企画し、今回はアプリの画面にテキストボックスとキーボードを表示させるところまで実装します。 アプリケーションの構想 当然タイピングアプリなのでタイピング画面が必要ですが、その他にも幾つか要素を入れる必要があります。 ・スタート画面(レベル選択を行える画面) ・タイピング画面(実際にタイピングをする画面) ・記録確認画面(自

Swift Playgroundsで遊ぶ(3) liveViewを使ってウェブと地図を表示する。

前回は「図形」テンプレートで各画像を表示させるプログラムで座標を元にして図形を描いたり、画像を表示させたりしました。 今回は、PlaygroundPageの機能、liveViewを使って、そこにウェブブラウザー(ウェブサイトを見るための仕組み)と、マップを表示させます。 空白のテンプレート今回は空白のテンプレートを活用します。 空白のテンプレートはまさに「空白」プログラムを書くためのスペースしか用意されていません。 ここで少し心配になってしまうかもしれませんが、安心し

Swift Playgroundsで遊ぶ(2) 「図形を描く」

前回は「対話」テンプレートを使って遊びましたが、今回は「図形」テンプレートを使って遊びます。 前回はこちら。 「図形」テンプレート 下のテンプレート集から「図形」を選んで、ダウンロードします。 こちら、実はネットワークに接続していないと各テンプレートをダウンロードすることはできません。ただ「空白」に関してはネットワークなしに実行することができます。 図形テンプレートには幾つかのページがあります。実際に試していただくと、色々なページがありますが、今回は最初の二つのペー

Swift Playgroundsで遊ぶ(1)

プロセスも細かくされていて、順序だてて学べるSwift Playgrounds。 今回は、Swift Playgroundsの「対話」テンプレートを使って、足し算をする簡単なプログラムを書きたいと思います。 まずは、「対話」テンプレートをダウンロードして準備します。 最初は、下のように文字を入力したら、それを返してくれるプログラムが書かれています。試してみましょう。 下のように表示されましたね?左にプログラムを書いて、その結果が右側に表示されます。入力した「TOMOH

手軽なプログラミング学習ツール(2) 「Swift Playgrounds」

Codemonkeyはウェブブラウザーを使ってプログラミングを学ぶことのできるツールですが、 プログラミングを綿密に仕組まれたステップで学ぶことができるため、学びの効率は高い反面、 学習できるプログラミング言語がCoffeeScriptと、現実では利用されていないプログラミング言語を学ぶことになってしまったり、有料だったりと、両刃の剣であることを、以前ご紹介しました。 今回は、みなさんにSwift PlaygroundsというApple社が開発しているプログラミングを学

Swiftでチーム開発するときに困ったこと

Swiftを使って本格的にiOSのアプリを、小学生たちと一緒に複数人のチームで開発したとき、色々なことに困りました。特に、Githubを使って共同編集をしていると、バージョンの差やお互いのブランチのConflictを解決するのがなかなか難しくもありました。 しかし、それとは別にの問題も引き起こされました。具体的に挙げていくと下の3つでした。 1.main.storyboardが壊れやすい 2.画像が壊れやすい 3.アイコンが入らない Swiftともなると、本格的に開