最近TravisCIを使うようになったのですが、
デフォルトのままだと全てのブランチのpushやPRに反応してしまうので、 特定のブランチとタグ にだけ反応するようにしました。
ちなみにTravisCI上でも設定はできますが、こちらは全てのブランチのpush/PRに対して実行するしないを決めるものなので、今回したかったことと違いました。

Continue reading

以前記事にしたautoreleasepoolから例外を投げられるようにするを更に使いやすい形にして、 sgr-ksmt/EnhancedAutoreleasePool として公開しました! 前回紹介したtryが可能になるものに加えて、autoreleasepool()内で値を返すことができようにし、更にtry可能なautoreleasepool()も準備しました。 定義としてはこんな感じです。 public func autoreleasepool(@noescape code: () throws -> ()) rethrows public func autoreleasepool<V>(@noescape code: () throws -> V?) rethrows -> V? public func autoreleasepool<V>(@noescape code: () throws -> V) rethrows -> V これで、以下の様な書き方もできます。 let value = autoreleasepool { doHighPressureMemoryTask() return "value" } autoreleasepool()の機能により局所的にメモリの圧迫を抑えつつ、必要な値を返戻することができます。 次回あたりに、あまり詳しく解説されているところがないので、throwsとrethrowsの違いでもまとめてみることにします。

Continue reading

OSSとコミット

最近は自分のソースをまとめたり、新しい実装を思いついてOSS化したりして、 何かとμライブラリを制作したりしていますが、 やっぱり他の人の書き方とかもすごい参考になるので、GithubのExploreやトレンドから探したり、 Qiitaの記事からライブラリ発掘して覗いてみたりしています。 それで「こういう書き方があるんだ!」って自分の知見が増えたり、 「あ、ここ直してみたいな」「こういう機能あったらいいな〜」とか思うこともあったりします。 なので最近ちょびちょびですが、Fork+Pull Requestで、気に入ったライブラリに対してコミットしたりもしています。 自分のためにもなるし、そのOSSを頑張って作ってくれた人の役に立てればそれも嬉しいしで、とても健全的な気がします。笑 ただ作る、自慢するだけじゃなくて、貢献する、助けになるという意識ももってこれからも頑張ろうと思った1日でした。 勝手に宣伝しちゃまずいのかわからないですが、本日は仕事の隙間時間をつかって、 takasekさんの、Notifwiftという、NSNotificationCenterでの通知管理を楽にするライブラリにコミットさせて頂きました。 今日は会社の人と焼き肉らしいのでこの辺で退散します。 明日は一日買い物と映画を満喫します!たまには外に出なきゃ…

Continue reading

先日ライブラリとして公開したPDFGeneratorを、1.0.0にアップデートしました。 以前のバージョンまででは、viewならviewのみ、viewならviewのみでしかPDFを生成できませんでしたが、 たとえば、 [view, image, image, view] のように、viewとimageを混ぜて生成出来るようになりました。 func generatePDF() { let v1 = UIView(frame: CGRectMake(0,0,100,100)) v1.backgroundColor = UIColor.redColor() let v2 = UIView(frame: CGRectMake(0,0,100,200)) v2.backgroundColor = UIColor.greenColor() let page1 = PDFPage.View(v1) let page2 = PDFPage.View(v2) let page3 = PDFPage.WhitePage(CGSizeMake(200, 100)) let page4 = PDFPage.Image(UIImage(contentsOfFile: "path/to/image1.png")!) let page5 = PDFPage.ImagePath("path/to/image2.png") let pages = [page1, page2, page3, page4, page5] let dst = NSHomeDirectory().stringByAppendingString("/sample1.pdf") do { try PDFGenerator.generate(pages, outputPath: dst) } catch (let e) { print(e) } } もちろん、従来通りの使い方もできます。

Continue reading

モチベーション

先日作ったライブラリ群に、ちょびちょびと★がつけられて、3,4日ほどで累計20個近い★が付きました! やっぱり誰かがいいね!って思って★を付けてくれるのは嬉しいし、感謝しないとなと思いました。 自分のため、他の人の為に、引き続きOSSの作成にも精を出したいと思います! PDFGeneratorも、新規機能を付けて、土曜日までにはバージョンアップさせて、より使いやすいものにして、 あわよくはAwesome-Swiftに…なんて思ってます。頑張ります。

Continue reading

Author's picture

su-

iOS/Firebaesなひとの技術ブログ

iOS Enginner

Tokyo, Japan