メール送信

2015/08/31/Mon

前回のソースコードはこちら

今日は次のことをやりました。
1、送信完了画面を「〜/send-mail」でだす
2、POSTを使って、送信完了画面の表示
3、入力フォームで入力し、
確認画面で表示した内容を送信完了画面にもだす
4、mailgunとBundlerのインストール
5、「〜/test」とうってメール送信
6、送信ボタンをおして、メールを送信。表示は送信完了画面

1、2は以前にもやった知識を活用すればできます。
忘れてしまった方はブログをご覧ください↓
「〜/send-mail」でだす
POST

「ああああ、忘れたーーー。もうだめだーーー」
なんて思わなくても大丈夫です。
ブログを書いてる本人たちも結構忘れていましたから!笑

さて、そんなこんなで1、2を軽くかわした姉妹でしたが、
3でつまずきました。
正確にいえば妹がつまづきました。
妹はブログの文章を担当しているので、
過去にやった内容はアウトプットができているので、
なんとなくわかるのですが、
新しいことに入るとつまづいてしまうのです。

姉妹ともformタグらへんをかえるのは
なんとなくわかっていたのですが、
どのようなソースコードを書けばいいのかというのは、
姉が早くたどり着きました。

姉「入力フォームから確認画面に持ってくることを
もう1回やりたいってことでしょ?
でもそのままのソースコードをもってきたら、
また入力フォームが表示されちゃうからなー。
その入力フォームを隠すためにはーー……。
hiddenとかつかうのかな?」

姉の声を聞いた妹も早速hiddenを調べ、
ソースコードに書き足そうとするのですが、
どの部分をどのファイルに書き足せばいいのかわからない!!
姉にヒントをもらいながらやっとできました。
※確認:妹は入力フォーム画面をindex.erb、確認画面をcheck.erb、
送信完了画面をthank.erbにしています。
2015-09-01 01.33.35
これがmyapp.rbのソースコード↑
2015-09-01 01.34.06
これがcheck.erbのソースコード↑
2015-09-01 01.34.23
これがthank.erbのソースコード↑

index.erbの入力フォームのところで、
メールアドレスを入力するinputタグの中にname=“email”
内容を入力するtestareaのタグの中にname=“message”
と書いたと思います。
なので、check.erbに「<input type = “hidden” 」
のあとのnameのところはそれぞれ同じnameを記述し、
valueのところには送りたい文字列を記述します。
今回の送りたい内容というのは、入力フォームにいれた文字ですよね。
その文字達は@emailと@messageにはいっているので
その変数を書きます。
そして表示させたいthank.erbのソースコードの中に
check.erbで記述した表示をするためのソースコードを書きます。

これで3はクリアです!
4を行ないます。
なぜmailgunとBundlerをインストールしなくてはいけないのか
って疑問ですよね。
まずmailgunですが、
メール送信するために普通に1からソースコードを書いていたら
すっっっごく大変です。
それを解決してくれるのがmailgunです。
ただmailgunだけをいれて
ためしにメールを送信しようとすると2015-09-01 14.12.52
このようなエラーがでてしまいます。
この英語を姉に翻訳してもらった結果
RestClientが必要と言われていることがわかりました。
なので、これもインストールしなくてはいけないことがわかりました。
RestClientがGemらしいので
そのときにBundlerが必要になります。
Bundlerは、
Gemと呼ばれているいわゆるパッケージが新しいのがあったり、
古いのがあったりすると
Bundlerがないと正常に動いてくれないらしいのです。
要するにRubyのGemたちを管理してくれるものです。

Bundlerをインストールしたらmyapp.rbと同じディレクトリの中に
「Gemfile」というテキストファイルを作って
その中にRestclientの名前を書き、
ターミナルでbundle installというコマンドを入力すれば
RestClientのインストールができます。
2015-09-01 14.34.19

仕組みはこんなイメージです。↓↓
gem

mailgunについて
Bundlerについて

インストールをし終えて5に進みます。
ここで忘れてはいけないのですが、
先ほどインストールしたBundlerなどを
ソースコードに反映させなければいけないので、
2015-09-01 01.38.57
だったのを
2015-09-01 01.39.21
に変更しておきましょう

そして、
メソッドを作るために
def <メソッド名>
<文>
end
というメソッド定義を初めて使いました。
詳しくはこちらをご覧ください。→メソッド定義

このdefと、以前から使っているgetを使って書いていくのですが、
実は何パターンか書き方があるのです。
まずは、
2015-09-01 01.45.29
次に
2015-09-01 02.18.04
です。
最後のソースコードで、
get endとdef endの順番も入れ替えても問題なく操作できます。
定義を先にしてしまうと
普通は「定義されてないぞ!?」と焦るのですが、
定義されてないとなるとget endの外側に出て探します。
そうすると、次に書いてあるdef endの中で
定義がされているので動かせるのです。
ここがうまくいけば、
「〜/test」のURLをうてばメールが送信されるはずです!

最後に!!6です!
これができるようになれば、
送信フォームの完成に一歩近づいたような感じがしますよね!!
実は6って意外と簡単なんですよ。
5で書いたコードのURLを「test」ではなく「send-mail」に、
「get」を「post」に書き換えるだけです。
2015-09-01 02.18.47

これは簡単!
そうすれば、送信ボタンをクリックするだけで
メールを送信できるようになると思いますよ!

いままでのソースコードはこちら

ちなみにapi-keyをpushしないための設定があります。
GitHubは課金しない限りすべての人にデータがみられてしまいます。
それを防ぐためにこのような設定をしなくてはいけません。
参考サイトをご覧ください。
公開したくない情報はdotenvにしまってしまう
HerokuでWebアプリ開発を始めるなら知っておきたいこと

この中には.envの内容を隠すようにという指示を
.gitignore(次回説明します!)に書いてしまったので
プッシュされていなくて.envの内容がわからないと思います。
.envの内容は見せたくない内容なのでそれが正解なのですが
今回はわかりやすいように、画像をはりますね!!
2015-09-10 22.30.54
本当に隠したい部分を「ほにゃらら」に変えましたが、
このような感じに書いてあれば正解ですよ!

そして、myapp.rbに
require ‘dotenv’
Dotenv.load
を付け加え、さらに
Gemfileに
gem ‘dotenv’を書きたすのを忘れずに!!
最後にターミナルでbundle installと打てば
正常に動くはずですよ。

今回のソースコードはこちら
参考にしてくださいね!

*:..。o○☆○o。..:*

実は私たち、毎回お菓子を食べながら勉強しています笑
で、今更なんですが笑、「今日のお菓子」シリーズ始めます!!!

DSC_1371
ガルボの紫いも味を食べたんですけど、
紫いも!!!!!!!!!!!!!って感じでした笑

入力した内容をメールに反映させよう! 

2015/09/01/Tue

前回のソースコードはこちら

・.gitignoreを調べて設定
・入力した内容をメールの本文として送信
 →引数をつかう
 →文字列の連結
という内容を今日は行いました。

さあ前回の最後にでてきた
.gitignoreですが簡単に言うと、
gitで管理しないファイルを無視させるファイルのことです。
なぜ.gitignoreファイルを作ったのかというと、
今までにgemをインストールしたと思います。
自分たちが認識していれたgem以外にもセットでインストールされてる
gemが実はたくさんあるのです。
さあ、SourceTreeを見てみてください!
…どうですか?1700くらいありませんか?
妹は思わずスクショしました。
2015-09-01 13.55.24
これらを全部コミットしてプッシュするとしたら大変ですよね。
そのgemをgitで管理しないようにするためのファイルが
.gitignoreなのです!!
また、他人にみせたくない情報が書かれているファイルを
管理しないようにするためにも使用します。

姉妹はbundleというディレクトリと
vendorのディレクトリにあるbundleのディレクトリを
管理しないようにしたいので
# Ignore bundler config.
/.bundle
/vendor/bundle
というのを.gitignoreの中に記述します。
そうすれば、1700もあったのが一気になくなりますよ!

さらに、.envと記述すると、前回妹が設定したように
.envの中身もプッシュされないように変更できます。

ちなみに、「.ファイル名」のように「.」から始まるファイルは
隠しファイルと呼ばれるものです。
これを表示させる方法はこちらをご覧ください。
隠しファイル表示方法

さて、これから入力した内容を反映させて
送信できるようにしていきたいと思います。

前回、get endとdef endを組み込んで書いてもいい
というお話をしたの覚えていますか?
それはpost endとdef endでも同じです。
しかしそれは一般的ではなく、
他の人がそのコードを見たときに
わかりづらいのでわけて書きましょう。

今までの知識を使おうとすると
@つけて変数にすれば反映できそうって思いますよね。
ところがどっこい、
@はget/postなどからendの間しか
変数としての役割をもたないのです。
今回のようにpost endとdef endをわけて書くと
@はなにも役にたたなくなるのです。

困ったー。
また姉妹の検索との戦いが始まりました。
妹「『def ruby』で検索検索ーーっっ!あ、引数つかうっぽい!」
?「正解!」
def endを初めて使うとき、
メソッド定義が詳しく書いてあるURLをリンクとして載せました。
そこに引数のあるメソッドを定義するというのがでてきているのです。
姉妹は学校で少しC言語をやっていて、
引数のことを少し知っていましたが
やはり仕組みは少し違っていて
とことん意味を知りたくなる姉は少し戸惑っていました。
妹が見つけたURL
メソッドの定義と呼び出し
引数を付けたメソッド呼び出し
このサイトを参考にして頑張りました!

2015-09-04-00.57.50
こんな感じです!
send_simple_messageと書かれているのがメソッドで、
その後ろに()で囲まれているのが引数になります。
post endの中に書かれている@emailと@messageの文ですが
それは最後に送信完了画面に表示させるやつで
ここでは関係ありません。

taioububun

このスクショの中に
send_simple_message
という文が2つ出てきていますよね。
その()で囲まれている1つ目同士が対応しています。
そのためdef endの中で
「email」と「message」の変数が使えるようになっているのです。
ちなみに最後の:textの文ですが[]で囲むことで配列を使っています。
これは、メールアドレスと内容がそのまま本文に表示されます。
ただこれだとお問い合わせフォームとして利用していく中で
メールを受け取った側が見づらいですよね。

そこで、これから文字列の連結というのをやってきます。
また検索し始めたのですが、これがなかなかヒットしないのです。
姉が先に見つけてソースコードを書いている中、
見当違いなものばかりヒットさせる妹。
でも!妹に奇跡がおきます!!
妹「そういや、”と’の違いってなんだろう・・・」
それを調べていると、
妹「え、これ???」
そうです、なぜか答えにたどり着いてしまったのです。
妹もこれにはびっくり。
このときのサイトがこちらです。

そのサイトを参考にして頑張った結果、
このようなソースコードになりました!
2015-09-04 17.50.22
変わった部分わかりますか?
…最後の1行だけです。ややこしくしてすいません。
#{}で変数を囲って、自分なりの文章を打てばいいだけです!
例えば
メールアドレスがmiki@miki.comで本文にこんにちはといれたとします。
今回妹が作成した文だと、
miki@miki.comさんからお問い合わせがありました。
内容:こんにちは
となるわけです!
ちなみの\nは改行を意味しています。

今日の内容はここまで!!
お問い合わせフォームまであと少しです!

スクショの中の:to =>のあとにmikiと書かれていますが、
これはなんでもいいので、ここから見本のソースコードにはformと書きます。

今回のソースコードはこちら
参考にしてくださいね!

Herokuを扱ってみよう

2015/09/02/Wed

-Herokuについて-

Herokuとは「多様な言語に対応し、webアプリケーションの開発から公開までサーバサイドを意識することなく実装できるプラットフォーム」のことです。
……いやいや、そんなこと言われても
なんのこっちゃって感じですよね、わかります。
簡単に言えば、「自分たちが作ったwebアプリケーションやサービスを一般公開するためのもの」です!!
今まで頑張って作ってきたお問い合わせフォームを一般公開できるよう
HerokuにSinatraをあげていきます。

〜準備すること〜

あげるのにあたって、
・Herokuのアカウント登録
・Heroku Toolbeltをインストール
をまず行なわなければいけません。

Herokuのアカウント登録ですが、HerokuのHPにいってもらえれば
英語がわからなくても簡単に登録できます!(現に妹ができた)
HerokuのHP
さあ、サクサク進みますよ!笑
次にHeroku Toolbeltのインストールですが、
これもHPにいけば英語がわからなくても
簡単にインストールできます!!(現に妹ができた part2)
Heroku Toolbeltのインストール
自分が使ってるものに合わせてインストールしてください。
姉妹はmacを使っているので
mac用のボタンをポチっと押してインストール完了です!

〜コードの修正〜

ここまでは早い!ここからが大変!!

これからHerokuにSinatraをあげるため用のアプリを
作っていきます。
まずはconfig.ruというファイルをつくって
2015-09-04 17.22.57
を書いてください。

はい、妹がひっかかったエラーその1
ここのrequireのあとのファイル名は
自分がつくった.rbのファイル名と同じにしてください!
一緒にお問い合わせフォームをつくってきてくださった方は
姉妹と同じmyappなので大丈夫ですが、
違う名前にした方はここを注意しないと
エラーが出続けます。(妹はずっとエラーが出続けました)

そうしたら下に書かれている
2015-09-04 17.23.53

2015-09-04 17.24.00
をターミナルでうつのですが・・・
ここで注意!
heroku createのあとに
自分が作りたいアプリの名前を書いてください。
そうしないと長くて変なURLが出来上がります。(妹が失敗済み)
「heroku create app」にするとappという名前にできます。

一応作成できたがどうか「heroku —version」
とターミナルにうってください。
[heroku-toolbelt/3.41.5 (x86_64-darwin10.8.0) ruby/1.9.3
You have no installed plugins.]
こんな感じがでたら成功です!
pluginsがないとかそんなん気にしないで先に進みましょう!
ここでhttps://が2パターンできたと思います。
https://自分が考えたapp名.herokuapp.com
のほうが公開したときのURLで
gitって書かれてあるURLは
ソースコードをプッシュするgitのアドレスになります。

次!妹がひっかかったエラーその2!
ここで必ず、今行なった変更を
SouceTreeでコミットしてください!
この作業を忘れてエラーがでて妹がどんだけ困ったことか…
Herokuに向けてのプッシュは今回はターミナルでするので
SouceTreeではしないでくださいね!

〜pushして公開〜

SouceTreeでコミットしたら
「git push heroku master」
とターミナルでうってプッシュしましょう。

さあ、これで!できているはずです!!!!
公開するときのURLにアクセスしてみてください!!
どうですか!!感動しませんか!
妹は叫びました。

もしエラーがでたらターミナルでheroku logsとうってみてください。
エラーが長々と表示されます。
英語が苦手な方。頑張ってください(切実)

実はこの一連の流れ、全部slack上で行なわれていたんです。
その時間、午前2時。
るびじょチームはみんな夜行性でした。

さあwebに公開することができたので、目標だった
「お問い合わせフォームの作成」は完了です!
お疲れ様でした!!!

データベース

2015/09/03/Thu

前回のソースコードはこちら

-データベース、頑張りましょう-

夏季インターンシップの目標は
「お問い合わせフォームをつくる」ということでしたが、
より学びたいということで
データベースの勉強をはじめました!

データベースというのは
「さまざまな目的を考慮して整理整頓されたデータの集まり」です。
階層型、ネットワーク型、リレーショナル型があります。
今回はリレーショナル型を扱っていきます。
データベース管理システムはデータベースを管理して、
データに対するアクセス要求に応えるソフトウエアです。
リレーショナルデータベース管理システムの中には、
今回使ったPostgreSQLの他にMySQLやSQLiteなどがあります。
そしてユーザがデータベース管理システムに指示を出す言語があり
今回はその言語はSQLを使います。

…わかりましたか?
簡単に言えば、データベースが図書館で
データベース管理システムが司書さん。
借りる人が司書さんに言う言語がSQLということですよ!
詳しくはこちらをご覧ください。
データベースについて

とりあえず、データベースを使えるように
色々とインストールしていきましょう!

〜インストール〜

まずPostgreSQLをインストールします。
以前にインストールしてあるHomebrewを使って
インストールすると楽にできます。
PostgreSQLをインストール
↑このサイトを参考にしたのですが、
最後に書いてあるまとめを見ると
たった3行しかいれなくていいことがわかりますね。
また、テーブルの作成、削除、データの追加も
SQLでできることがわかります。

〜コマンドで使ってみる〜

ターミナルで「psql -l」とうつと
自分のPCに入っているデータベース一覧を
表示することができます。
自分でデータベースを作っていない場合は
postgresとtempate0とtemplate1があると思います。
「作ってないのにある!?」
と思うかもしれないんですけど、
そこは深く考えないようにしましょう!笑
とりあえず、3つ図書館(データベース)があるんですよ。
では、postgresというデータベースに入館しましょう!
そのために「psql postgres」とうちます。
はい、入館しました!!
でも、テーブル(本棚)がありません。
図書館はあってもさすがに本棚はないんですね。
本棚をつくってあげましょう!
ここでは「かえる」作成します!!
え、なんでかえるなのかって?
姉妹「探して発見したHPの例がかえるだった」
ただそれだけです。
カラム名は、名前と生息地、体長にしましょう。
「create table frogs(name text, habitat text, length int);」
※英語がわからない妹なので翻訳サイトに頼っているため
変な英語を使っているかもしれませんが目をつぶってください。

テーブルの名前は複数形にしてください。
このtextはデータの入力がテキスト表示、
intは数字ってことを表しています。
これをターミナルに打ち込めば、
テーブル(本棚)が作成されます!
確認してみましょう!
「\d frogs」これでfrogsというテーブルがあるのか
みることができます。
box2

ちゃんとカラム名も作れていますか?
では、データを挿入してみましょう。
ここからはSQL言語を使っていきます。
逆引きSQL
詳しくはこの上のサイトをご覧ください。
では、ニホンアマガエルのデータを挿入していきます。
「insert into frogs (name, habitat, length) values(‘ニホンアマガエル’,’日本’,3);」
これはニホンアマガエルの生息地が日本で
体長が3cmであるというデータを入力したことになります。
ためしにちゃんと挿入されているか確認しましょう。
「select * from frogs;」
とうったら全部表示してくれます。
ニホンアマガエルのデータがでたら成功です!

2015-09-05 17.41.08

削除に関しては、
自分でHPの指示に従ってやってみてくださいね。

実はこのブログを書くから嘘を書かないようにしようと
ちゃんとかえるのことを調べていた妹だったのですが
かえるを見すぎて目を閉じると
かえるが襲ってくる現象に陥ったのは内緒。

ただ、もともとあるデータベースを色々といじるのは不安なので
データベースを新しく作ってみましょう!
データベースの作成
samplesというデータベースを作りたかったら
「createdb samples」と打てばつくることができます。
ちなみに妹はlibraryにしています。

〜Sinatraから使う〜

今ままではデータベースを直接操作していたのですが
次はSinatraを使って動かしていきたいと思います。
そのためにデータベースとSinatraを通信させます。
通信するためにSinatraにgemをいれていきます。
そのgemというのは「pg」「activerecord」「sinatra-activerecord」です。
そのため、Gemfileが
2015-09-27 02.04.24
こういう記述になるようにしましょう。

ちなみにGemfileを編集する度に、
ターミナルでbundle installをうってくださいね。

そしてmyapp.rbにはこれらを追加。
2015-09-08 20.52.14

さらにRakefileやmigrationファイルも作成します。
下の図はRakefileです。
2015-09-27 02.04.42

そうすることでSinatraからテーブルを
いじることができるようになります!
詳しくはこちらをご覧ください。
参考サイト:データベース操作

このURLを見ればわかると思いますが、
migrationファイルをつくるには、
ターミナルで自分が今作っているディレクトリに移動して
「bundle exec rake db:create_migration NAME=create_samples」
とうちます。これでsamplesというテーブルを作成出来ます。

ちなみにmigrationファイルは
日付_create_テーブル名.rbというファイルです。
dbフォルダ→migtrateフォルダの中にあります。
このサイトにはdefのあとにupとdownと書かれているのですが
これは古いバージョンらしく、
2015-10-05 13.31.18
このchangeだけで大丈夫です!
tableのあとは自分のテーブル名
t.stringのあとはカラム名に変えてくださいね!

`bundle exec rake db:migrate`を一番最後に打つと
設定が成功してデータベースがちゃんとできました!
ぱちぱちぱち!!!!

きちんと作れているのか確認したい場合は
始めのほうに書いたやりかたで自分のデータベースにはいって
「\d」と入力すればテーブルが一覧ででてきます。

姉妹「調べすぎて頭がパンクしそう」

今回のソースコードはこちら
参考にしてくださいね!

お問い合わせフォーム完成!!!

2015/09/04/Fri

前回のソースコードはこちら

-完成させるぞ!!-

今日はSinatra側からテーブルをいじってみます!
前回myapp.rbのところに
require’yaml’から、class〜endって書いていて、
classの後ろがSampleになってますよね。
これは自分が考えたテーブルの名前を
単数で最初の文字を大文字にしたものです。
migrationでつくったときに作成されていた
schema.rbを開くと
テーブルがちゃんとあるか確認することができます。

せっかく入力フォームをつくってメールを送っていますが、
このままだと送ったデータが残らないですよね。
ここでデータベースの出番です!
入力フォームで入力した情報をテーブルに保存してみましょう。

〜情報をテーブルに保存しよう〜

samplesをそのまま使ってもいいのですが、
入力フォームということで
mailsというテーブルを作りたいと思います。
そうするとsamplesが邪魔ですよね。
そのままとっておいてもいいのですが
こんがらがりそうなので削除してしまいましょう。
これは簡単!
ターミナルで「bundle exec rake db:rollback」
をうつだけです。
これは一つ前に戻るという意味なのです。

そしてここでmigrationすると
また同じように作ってしまうので、
migrationファイルを消します。
そしてもう一度、mails用のmigrationファイルをつくります。

2015-09-06 21.07.53

そして
samplesを消したのでclassの後ろをMailに変えます。
2015-09-06 21.37.57
こんな感じです。
ではこれを元に入力フォームで入力した内容を
データベースにいれられるようにしましょう。

さて、入力したemail情報を入れていきますよ!!
このサイトを参考にしてやっていきましょう!
ActiveRecordの基本機能とマイグレーション、バリデーション

myaap.rbのファイルの中に
mail = Mail.new
mail.email=@email
mail.message=@message
mail.save
これを入力します。
2015-09-06 21.16.31
こんな感じ!!
@emailと@messageには以前からもお伝えしている内容が
既に入力されていますよね。
それをmail.emailとmail.messageにいれるのです。
これはmailというテーブルのemailというカラム名のところに
email情報をいれるということです。

ここで面白い会話とか入れられたらいいんですけどね…
姉妹とも調べ学習に集中して会話そこまでなんですよね…
でもこれはいいことですよ!!!
自分たちで調べようという心意気!!
ほめてください!!!(切実)

…話を戻します。
そして、これをすれば!
データベースをいれられてるはずなのです!!
これを確認するためには前から使っていた
localhostを使って確かめます。
ターミナルで一時的にサーバを立ち上げて
まずはメールを送ります。
そのあとにpostgresにログインして
テーブルの中を見てみましょう!!
どうですか?入っていたら成功です!!!

〜Herokuでもデータベースをつかおう〜

でもこれだとせっかく一般公開できるように
アプリケーションをHerokuの中にいれたのに
入力フォームに入力した情報は保存されないままに
なってしまっていますね。
これではまずい!!
ってことでHerokuでもデータベースを
つかえるように設定しましょう!
こちらのサイトをご覧ください!!
そして頑張って!(妹投げやり)
herokuでDBをできるようにする

この時にdatabaseのURLをプッシュするのはよくないので、
プッシュしないように設定しましょう!
これは今までやりましたよ!
そうです。.envファイルに書き足せばいいのです!
そしてmyapp.rbも変更しておいてくださいね。
2015-09-17 18.35.34
↓ ↓ ↓ ↓ ↓ ↓
2015-09-17 18.35.52
こんな感じに!

はいはいはい!!
これが設定できたら、
コミットしてー
ターミナルでプッシュしてー
「heroku run bundle exec rake db:migrate」
をターミナルでうちこんでー
Herokuで設定したURLにアクセスして
メールを送ってみてください!!
送れましたか?
ここで!
どうテーブルに反映されたかという確認方法なのですが!
かっこよく受信件数の表示なんてさせてみましょう(にやり)

〜受信件数の表示方法〜

myapp.rbのindexところのget end内に
@count = Mail.count
を追加し、index.erb に
受信件数 <%=@count%>件
を追加するだけです!
この仕組みはもうおわかりですよね!
送信してみてTOPページに戻って件数が増えていたら…!!

完成です!!!
ひゃーーーーーー
姉妹「おつかれさまでした!!!!」
これで完成なのですよおおおお
叫んでいいですよ、叫びましょう。
ひとつアプリケーションつくれたんですもの!!!

完成したソースコードはこちら!!!

〜最後に〜

プログラミングに苦手意識があり、あまりさわったことがなかったぽんこつ姉妹ですが、3週間でお問い合わせフォームという立派なアプリをつくることができました!だからこれをみて少しでも興味を持ってくださった方、お問い合わせフォームをつくってみたいなっと思ってくださった方!
大丈夫です。つくれます。
ぽんこつ姉妹がつくれたのですから!笑
いつかのブログにもありますが、まずは慣れることが大事だと思います!意味はわからなくても、見本のソースコードをクローンして動かしてみましょう(^^)