Slide 1

Slide 1 text

RubyMotion meets IRC ninjinkun http://ninjinkun.hatenablog.com Thursday, May 30, 13

Slide 2

Slide 2 text

id:ninjinkun / @ninjinkun • Studying RubyMotion • Reimplement in-house app • Working time reporting system wrapper • UIWebView based • Waste 2 or 3 hours http://ninjinkun.hatenablog.com Thursday, May 30, 13

Slide 3

Slide 3 text

Create IRC Client with RubyMotion https://github.com/ninjinkun/rubymotion-irc Thursday, May 30, 13

Slide 4

Slide 4 text

Motivation • RubyMotion advantage • Ruby Syntax • Meta Programming • RegExp • Does text-based protocol fit to RubyMotion? https://github.com/ninjinkun/rubymotion-irc Thursday, May 30, 13

Slide 5

Slide 5 text

About IRC • Internet Relay Chat • Easy text-based protocol • 1 message, 1 line https://github.com/ninjinkun/rubymotion-irc Thursday, May 30, 13

Slide 6

Slide 6 text

DEMO https://github.com/ninjinkun/rubymotion-irc Thursday, May 30, 13

Slide 7

Slide 7 text

Protocol Parser Implement IRC Client • Based on node.js code by my coworker • Change JS syntax to Ruby … work! • Study IRC protocol using this code • Need more powerful one • Can reuse Ruby class? →Search in github, copy paste … work! • (Sometimes)Work directly if it use only string and regexp Thursday, May 30, 13

Slide 8

Slide 8 text

Socket Implement IRC Client • Use native library • GCDAsyncSocket • Easy install with Motion-CocoaPods • Implement with refer to Limechat code on github Thursday, May 30, 13

Slide 9

Slide 9 text

View Implement IRC Client • Use UIWebView • Traditional way from Limechat • UIWebView + Client side HTML template engine • Implement minimum HTML template engine • Pass Ruby object to template engine • Implementation now broken.. Thursday, May 30, 13

Slide 10

Slide 10 text

Wrap Up • RubyMotion is very much to text-based protocol • Web app like developing with HTML template • Future • Potential to implement constant connected IRC Client • Use VOIP API • Can’t sale on AppStore Thursday, May 30, 13

Slide 11

Slide 11 text

For Student Hatena Summer Internship • 8/12 - 9/6 @ Hatena HQ, Kyoto • Learning • Web App basics (Perl, SQL, HTTP, WAF, HTML, JavaScript) • iOS App, Big Data, Service Design • Commit • Plan, design, implement your idea to actual services • Deploy, Release, Get feedback • Salary, Hotel, Free Launch, Free Drink • Due 6/16 Search with “͸ͯͳΠϯλʔϯ” Thursday, May 30, 13