RoR to RubyMotion Writing Your First ios App With RubyMotion. Michael Denomy BostonMotion User Group June 25, 2013



Similar documents
View Controller Programming Guide for ios

Mobile App Design and Development

MEAP Edition Manning Early Access Program Hello! ios Development version 14

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

TakeMySelfie ios App Documentation

MA-WA1920: Enterprise iphone and ipad Programming

ios Dev Fest Research Network Operations Center Thursday, February 7, 13

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

How To Develop An App For Ios (Windows)

2. About iphone ios 5 Development Essentials. 5. Joining the Apple ios Developer Program

SSRS Reporting Using Report Builder 3.0. By Laura Rogers Senior SharePoint Consultant Rackspace Hosting

Programming Cocoa with Ruby Create Compelling Mac Apps Using RubyCocoa

Figure 1 responsive grid system for all view ports, from desktops, tablets and smart phones

Builder 2.0 Guide and Walkthrough

Mobile App Proposal Magazine company- @address.com. January 12, y. Direct Contact.

ANDROID INTRODUCTION TO ANDROID

IOS App Development Training

Welcome to the new Netop School 6.0 interface!

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean

geniusport mobility training experts

Embedded BI made easy

How To Convert A Lead In Sugarcrm

ios App for Mobile Website! Documentation!

Developing Applications for ios

App Distribution Guide

Adobe Summit 2015 Lab 718: Managing Mobile Apps: A PhoneGap Enterprise Introduction for Marketers

INTRODUCTION TO IOS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 13 02/22/2011

How To Use Ios 5

Office 365 SharePoint Setup and Admin Guide

Learn iphone and ipad game apps development using ios 6 SDK. Beginning. ios 6 Games. Development. Lucas Jordan. ClayWare Games tm

Cross-Platform Tools

Middleware- Driven Mobile Applications

Mac Built-in Accessibility ( Lion) - Quick Start Guide

The IBM i on Rails + + Anthony Avison anthony@powerruby.com. Copyright 2014 PowerRuby, Inc.

This documentation is made available before final release and is subject to change without notice and comes with no warranty express or implied.

Workshop on Android and Applications Development

Beginner level: Modules 1 to 18. Advanced level: Quick review of modules 1 to 18, then following to module A Simple ios Application

Start Developing ios Apps Today

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00

Managing Existing Mobile Apps

Welcome to icue! Version 4

Citrix Virtual Classroom. Deliver file sharing and synchronization services using Citrix ShareFile. Self-paced exercise guide

Introductory Tutorial on ScalIT File and Document Management

Assignment I Walkthrough

Learning ios Programming

Assignment 2: Matchismo 2

Zoom Participant Guide

A product of Byte Works, Inc. Credits Programming Mike Westerfield. Art Karen Bennett. Documentation Mike Westerfield

Maximizer CRM 12 Winter 2012 Feature Guide

Microsoft SharePoint 2010

Customization and Configuration in Microsoft Dynamics CRM 4.0

Here to take you beyond Mobile Application development using Android Course details

Customizing ArcPad solutions

Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers

Oracle FLEXCUBE Direct Banking

Zoom Participant Guide

My experience of Ruby Education in Taiwan

Beginner's Guide. LiveCode Mobile Development. LiveCode. Create fun-filled, rich apps for Android and ios with. Colin Holgate PUBLISHING

Enterprise Mobile Web Development. Robert Altland Principal Consultant, Mobility Neudesic, LLC

Xcode Application note

Explore commands on the ribbon Each ribbon tab has groups, and each group has a set of related commands.

One of the fundamental kinds of Web sites that SharePoint 2010 allows

Mobile Application Development ITP 342 (3 Units)

Praktikum Entwicklung von Mediensystemen mit

ios Development: Getting Started Min Tsai March 1, 2011 terntek.com v1.0

ios Development Tutorial Nikhil Yadav CSE 40816/60816: Pervasive Health 09/09/2011

Building, testing and deploying mobile apps with Jenkins & friends

Your First App Store Submission

Objective C and iphone App

ios App Development for Everyone

How to Prepare for the Upgrade to Microsoft Dynamics CRM 2013 (On-premises)

Smartphone Overview for the Blind and Visually Impaired

Dashcode User Guide. (Retired Document)

Teaching App Development with Swift Course Materials Overview

Development of Computer Graphics and Digital Image Processing on the iphone Luciano Fagundes

Dev01: Kentico CMS 7 Developer Essentials Syllabus

Knappsack ios Build and Deployment Guide

MERLIN. The Quick Start Guide to professional project management ProjectWizards GmbH, Melle, Germany. All rights reserved.

What s New in IBM Web Experience Factory IBM Corporation

Introduction to Tizen SDK Alpha. Taiho Choi Samsung Electronics

Lead Management in Sugar 7

A guide for Purchasing and Syncing Apps on the ipad

1 от :45

The Learn-Verified Full Stack Web Development Program

Product Guide Nintex. All rights reserved. Errors and omissions excepted.

Microsoft Tag Scanning SDK for iphone & Android Apps

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

Quick Start Guide Mobile Entrée 4

Client Overview. Engagement Situation

Table of Contents. 1. Content Approval...1 EVALUATION COPY

Transcription:

RoR to RubyMotion Writing Your First ios App With RubyMotion Michael Denomy BostonMotion User Group June 25, 2013

About Me Tech Lead at Cyrus Innovation - Agile web consultancy with offices in New York and Boston - http://www.cyrusinnovation.com Agile and XP practitioner since 2004 - Passionate about TDD and pairing mdenomy on twitter and github Blog at www.mdenomy.wordpress.com

Goals Capture my experiences getting started with RubyMotion - Help someone else along - Get ideas for where to go next Target Audience - Developers familiar with Ruby on Rails - Little to no previous experience with ios - Desire to learn Some talk, some code

The Vision Ruby MVC

The Reality initwithnibname? UIControlEventTouchUpInside? What s a Nib?

More Cold Hard Facts RubyMotion is not free - $199.99 - No trial, but 30 day money back - There is a student discount program ios Developer Program is not free - $99 / year - Required to deploy to devices and distribute via AppStore You will need to understand ios SDK - ios documentation is difficult to navigate

It Gets Better

It Gets Better

Good Stuff Growing community with lots of online resources More and more gems appearing that provide a Rails-like experience Free to use the tools you like - Sublime plug in for RubyMotion has code completion and rake shortcuts https://github.com/haraken3/ SublimeRubyMotionBuilder

MVC in ios MVC is MVC right? No convention over configuration - Have to wire things up manually Slightly different terminology that Rails

UIViewControllers Controller receives actions from the framework (e.g. view loaded) and the user (e.g. button pressed) - Interacts with Models and View UIViewControllers you need to know - UINavigationController - UITabBarController - UIViewController - UITableViewController

Models Models are PORO s in RubyMotion Support built-in for - attr_accessor - attr_reader - attr_writer Possible to serialize/deserialize data using NSCoder and NSKeyedArchiver - Looked for other options to support storage and relationships

Views UIView is a base class Buttons, labels, date pickers, etc., all inherit from UIView Views can have subviews - Simplifies screen layout and allows re-use

Let s Look at Some Code Basic Navigation - Application Delegate - Root View Controller - UITabBarController - UIViewControllers

MyWines App I enjoy the occasional glass of wine. I would like to have a way to track the wines I like and prices I've paid for them - Record tasting notes - Record purchases and price info - Search for wine by name/producer - Save to Favorites - Save label picture Spoiler alert - I have done next to nothing to style the app

Sketch It Out It s a lot cheaper and faster to iterate at this level than in code

What Tools Did I Choose Bundler - Simplify dependencies Formotion - Entry/edit forms Teacup - Styling DSL Sugarcube - UI extensions ProMotion - Screen development and workflow MotionModel - Models and relations BubbleWrap - I used it for camera, but lots more (JSON, HTTP, RSS, Location, Audio, Video) MotionAwesome - Buttons and icons More at http://rubymotion-wrappers.com/

ProMotion Simplifies screen development Support for table screens - Easily search for table entries Helpers for tab and navbar controllers

Formotion Easily create forms for entry/edit Integrates with ProMotion Support For - text - dates - sliders - check boxes - and many more

MotionModel Wanted something like ActiveRecord Chose MotionModel gem - Lightweight - Feels Railsy Validations ActiveRecord-like syntax Relations - Serialization / deserialization support - Actively maintained - Formotion support(turned out not to matter)

Teacup Layout and style your app in a DSL Frees you up from layout of screens in XCode Allows you to keep your views a lot cleaner Hierarchical and supports variables

Sugarcube Tons of helpful syntactic sugar extensions to make your development easier - conversion of hex color codes to UIColor - alert and action dialogs - symbol to ios, e.g., :touch.uicontrolevent becomes UIControlEventTouchUpInside - array helpers - hash to object conversions

BubbleWrap Amazing set of tools for - HTTP - JSON - RSS - Camera - Location - Alert boxes - REPL support Just using it for the camera in my app

MotionAwesome Great set of icons and buttons Based on FontAwesome So far only used it to create a camera button using a camera icon

Deploying to Device Must be in Apple Developer Program - $99/year Get provisioning and developer certificates Deploy using rake - rake device - Make sure to quit itunes and Image Capture Can t do some things with simulator - e.g. Camera

Where Do I Go Next Better use of views and subviews - As app evolves will have more common controls/groups -> re-use - Easier to lay out due to relative positioning used in subviews Better/more styling - Will require more understanding of ios Persist images to file system Do more with models - Averages, filtering, etc

Where Do I Go Next Testing - This was very much a spike, but as the app evolves want to incorporate more automated testing - Tested the models, especially persistence and validation since these were areas of risk - Want to look at more integration testing motion-frank (maintained by Cyrus Innovation) motion-calabash

Questions I Still Have ProMotion is awesome, but I wonder if down the road this paints me into a corner Wild West of gems - Will be interesting to see what ideas and tools rise to the top How much ios should I learn - Interface Builder - CoreData

Resources RubyMotion Developer Center - http://www.rubymotion.com/developer-center/ RubyMotion by Clay Allsop - http://pragprog.com/book/carubym/rubymotion ios Dev Center - Tons of useful info, navigation is horrible - https://developer.apple.com/devcenter/ios/index.action - https://developer.apple.com/library/ios/#featuredarticles/ ViewControllerPGforiPhoneOS RubyMotion Wrappers and Libraries - http://rubymotion-wrappers.com/

Questions Q&A

RoR to RubyMotion Writing Your First ios App Michael Denomy BostonMotion User Group June 25, 2013