2014年6月16日月曜日

【IT】最近始めたものと面白い点

最近Swiftの登場とかで色々勉強会やったり記事書いたりが増えて楽しい。
ので新しく始めたものとかについてちょっと書く。

・GitHub

コミットすると緑色のグリッドが増えるので、芝生を生やす楽しみがある。まだ無いけど、誰かからソースに対するツッコミとかに期待。

・Qiita

誰がどれだけ見てるか、投稿に対してViewとストックという基準でどれだけ必要とされた投稿かがわかるのでモチベーションが上がる。始めてさっそく「役に立った!」というコメントがもらえたのでかなり嬉しくなった。

・Google Analytics

Qiitaに使い始めてみた。多分ブログとかにも使えるんだよね、これ。これもまたどれだけ見られてるのかがわかるからハマる。監視してたい。

・仙台Swiftもくもく勉強会

自分は詳しくないのでとりあえずもくもくという形をとってちょっと人に聞いたりして自分の勉強にちゃっかり役立てたりしてたり。あとはこの間話に出たこととして「一つのお題なりに対してみんなで考える」という勉強会形式も求められている模様。そしてもう一つとしてはお題を立ててLTなり講義形式で技術的な話をするのも求められている様子。これも出来たら面白そうだからやってみたいなと考え中。


Swiftの発表があった時は「うわなんだよObjective-Cオワコンになるのかよーorz」とか嫌になったけれど、Swiftを勉強することがかなり良い機会になったなと思い始めてる。
さー、これからも無理の無い程度にもっと色々広げてやってくぞー。


2014年6月14日土曜日

【iOS】SwiftでUIImagePickerControllerを使ううえで気付いたこと

今日は仙台Swiftもくもく勉強会第一回を開催しました。
その中でSwiftでUIImagePickerControllerを使って写真を撮ってカメラロールに保存するアプリを作りました。その上で気付いた事をいくつか書いていきます。
ソースはgithubにあげておきました。SwiftCam

基本的にはObjective-Cで書く方法と同じなのですが、微妙に引数や型が違かったりしたので、そこはUIImagePickerControllerの元ファイルをたどって見てもらえばObjective-Cではこういう名前のメソッドだったけどSwiftではこう書いてねっていうのが英語で書いてあります。

次にいくつか気付いた点や気になった点を書いていきます。

・関数の中で関数を書いてもエラーが出ない

Objective-Cだと関数の中で関数を宣言して書くとかそもそも有り得なかったし気にもしていなかったところなんですが、Swiftだとそれが可能です。可能であるがゆえに気付かないでviewDidAppearの中でデリゲートメソッドを書いて「あれ、なんでここ通ってないの?」ってことになりました。
気をつけましょう。

・Selectorの指定の仕方

UIImageWriteToSavedPhotosAlbumメソッドのcompletionメソッドとしてimageDidFinishSavingWithErrorContextInfoメソッドを独自に書きました。
その時UIImageWriteToSavedPhotosAlbumの中でSelectorの指定の仕方ってSwiftだとどうするんだろうと詰まりました。
結局のところソースの通りObjective-Cの時とそんな変わらず、複数の引数があったとしても

 "関数名:仮引数:仮引数:"

みたいに書いて出来ました。
あとはNSErrorで出来ていたところをNSErrorPointerで書けってのもほうほう、というところ。

・ソースコードの中に日本語が入っていると補完が効かない

補完は効かないものだと諦めていましたがどうも調べていると日本語がソースコードの中に入っていると効かないらしいというのがわかりました。
コメント部分もですし、気付きにくいのはファイルの先頭に書いてあるCreated by 誰々のところにも名前が日本語で入っていたりします。要注意。



とりあえず今日はこんなところでした。
一緒に調べて考えて、助けていただいた方に心から感謝です。

2014年6月12日木曜日

【iOS】CounterBySwiftを改良してみて気付いたこと

昨日のSwiftのサンプルアプリ、CounterBySwiftを改良しました。

・改良点
-ViewControllerからCounterViewとCounterButtonを切り離した
-StoryBoardを使わない形にした

とりあえず少しは見やすくなったかと思うけどボタンの部分がもうちょっとスマートになりそうだなぁと。
ボタンのアクションはボタンのクラスに書くべきだろ!とか。



StoryBoardを使わない形にして気付いたこと

ここを参考にしました。

自分のソースだと
self.window.rootViewController = testNavigationController
self.window.rootViewController = viewController
に直しました。

手順
①Single View Applicationでプロジェクトを立ち上げるとStoryBoardが元からファイルにあるので、それを消す

②Deployment InfoのMain Interfaceを消す

③上記の参考にしたURLのコードをAppDelegate.swiftに追記する
Objective-CだとMain.mというファイルに書くのだけれどSwiftだと無くて、代わりにAppDelegateのところで書くようです。

2014年6月11日水曜日

【iOS】iOS勉強会inデザイニウムインターン部に参加しました!

昨日はデザイニウムインターン部のiOS勉強会に遠隔参加しました。
Swiftでのプログラミングを始めました。
基礎文法のおさらいをして、サンプルとして簡単なカウンターアプリを作りました。

勉強会の途中ではまだ安定してないxcodeがちょいちょい落ちたり、Macが言うことを聞いてくれなくなったりなどのハプニングが発生しましたが、楽しく勉強する事が出来ました。補完が効かないのも痛いところですね。
Objective-Cで書いていた部分をSwiftで書くとどうなるか、サンプルを書いていくうちに疑問点が解消されていって気持ちよかったです。

ああ、こうやってObjective-CはSwift祭りの中で姿を消していくのかな...w

サンプルをgithubに公開しました。
簡単なものなので、まず最初にやるものにうってつけかもしれません。