ペイントアプリまとめレポート

1、アプリの機能

  ペイントツール:ブラシ、消しゴム、定規、ディバイダー、カラーピッカー(ブラシの太さを選択できる、カラー160種類選択できる)

  操作の機能:元に戻す、やり直す、スケッチブックをクリアする、絵を保存する、既存の絵を開く、新規スケッチブック、SNSで絵をシェアする。

2、開発中難しい点、時間かかった点

  1)モデルの設計(各クラスの役割、データ値の転送など)

   

f:id:sunhuanji1992:20160320205435p:plain

 開発途中で修正したことがありましたけど、最後のモデルは以上のように決めました。

 2)線の引き方

  最初のやり方は:touchesBeganでタッチしたときのイベントを取得、touchesMovedで指を動かしたときのイベントを取得、touchesEndedで指がスクリーンを離したときのイベントを取得する。そして、beginPointとendPointの間、CGContextAddLineToPointで直線を描く。この方法の欠点は、ゆっくり指を移動するとスムーズに見えますが、移動のスピードが速いとスムーズになれない。そこで以下のように改善しました。

  直線の変わりに曲線を描く

  配列samplePointsで全ての点を記録します。

  beginPointとendPointの間ではなく、中間点を計算し、曲線で繋がる。

  二次元の曲線の変わりに三次元ベッセル曲線を描く、二つのコントロールの点で曲線の形をコントロールする
   例えば、
   

f:id:sunhuanji1992:20160321170514p:plain

二次元の曲線は、コントロールポイント一つだけです。

f:id:sunhuanji1992:20160321170651p:plain

三次元のベッセル曲線は、二つのコントロールポイントを使うので、曲線はもっと自然に見える。コントロールポイントの座標の計算が必要になります。

 
3)カラーピッカーの実装
  RGB値のStringをUIColorへ転換のところ結構時間がかかりました。

 3、気づきと感想

  初iphoneアプリ開発は楽しかったです。swift言語は使いやすいし、リファレンスを読みながら、開発を進めました。順調な時もありましたけど、寄り道をしたり、苦戦しったり時間がかかった場合もあります。興味を持ち言語でいろんな種類のアプリを開発してみて、経験を積みたいです。まだまだ勉強できることがたくさんあると思っています。

                                  日々感謝!