Ruby Conf 2012 mRuby meets iOS and RTOS
YM
aYY
See all speakers
See all 3 speakers


Summarized using AI

Ruby Conf 2012 mRuby meets iOS and RTOS

Masayoshi Takahasi, Yichiro MASUI, and and Yurie Yamane • November 01, 2012 • Denver, Colorado • Talk

Summary of Ruby Conf 2012 Talk: mRuby Meets iOS and RTOS

In this session of RubyConf 2012, the speakers Masayoshi Takahashi, Yichiro Masui, and Yurie Yamane discuss two main topics: the integration of mruby with iOS applications, and the application of mruby in Real-Time Operating Systems (RTOS). The presentation aims to illustrate how mruby can simplify mobile application development by using Ruby instead of conventional languages like Objective-C or Java.

Key Points Discussed:

  • Introduction to Mobile Ruby (mruby):

    Mobile Ruby, also known as MobiRuby, is presented as an alternative to traditional mobile development languages, enabling developers to create iOS apps using Ruby through the mruby engine. This environment aims to provide a bridge between Ruby code and iOS's Cocoa libraries.

  • MobiRuby Features and Development:

    The speakers highlight that MobiRuby supports native functionality and allows developers to utilize Cocoa classes with Ruby syntax. Examples were provided, demonstrating how to interact with Objective-C code within the Ruby environment. The current focus for MobiRuby includes further development for Android compatibility and enhancements for an easier development experience.

  • Limitations of mruby:

    Despite its advantages, mruby has limitations, including lack of compatibility with many Ruby standard libraries and functional constraints due to its design for embedded systems. These limitations were acknowledged, and plans for future improvements were mentioned.

  • mruby in Embedded Systems (RTOS Discussion):

    The second part of the talk delves into how mruby is utilized within embedded systems, particularly with the TOPPERS/ASP and TOPPERS/SSP Real-Time Operating Systems. The speakers explain the need for efficient use of resources in embedded programming and highlight the differences between high-level application development and resource-constrained environments.

  • Demo and Implementation:

    A practical demo showcasing a simple application using mruby on an embedded system board was presented, illustrating its potential for controlling hardware and performing tasks efficiently. This demonstration reinforced the speakers' points about the capabilities of mruby in various environments, such as controlling LED indicators through an interactive shell interface.

Conclusions:

The speakers conclude by encouraging developers to explore using mruby for both mobile and embedded system projects. They share that adjustments and improvements are ongoing, with future goals including enhanced API support and documentation for developers. They invite interested individuals to participate in improving the project and share contact details for collaboration.

Main Takeaways:

  • MobiRuby offers a valuable alternative to develop iOS apps using Ruby, bridging the gap with Cocoa libraries.
  • While mruby presents unique benefits, it comes with limitations that developers need to be aware of.
  • Application in embedded systems through RTOS showcases the versatility of mruby in constrained environments.

Ruby Conf 2012 mRuby meets iOS and RTOS
Masayoshi Takahasi, Yichiro MASUI, and and Yurie Yamane • Denver, Colorado • Talk

Date: November 01, 2012
Published: March 19, 2013
Announced: unknown

We have hacked mruby on non-PC OS. At the RubyConf 2012, we will talk and share our experiences.

Our talks have two parts (actually, we have two small talks)

Ruby + iOS = Super awesome!
mruby for embedded systems
First part (iOS):
Are you fed up with Objective-C? Now, you can build iOS apps with mruby.

MobiRuby aims to replace Objective-C/C/Java on mobile platforms with Ruby, just like you can use Lua or Mono to build apps on those platforms. In this presentation, I will talk about how to create iOS app using MobiRuby and MobiRuby internals.

Second part (RTOS):
The TOPPERS/ASP and TOPPERS/SSP (http://www.toppers.jp/en/) kernel is a famous RTOS in Japan, as extended and improved kernel for embedded systems, based on the standard profile of Micro ITRON4.0. We have used mruby on TOPPERS RTOS. We will show the issues about embedded systems and how to solve them.

RubyConf 2012

00:00:14.330 hi today I'd like to talk about mobile ubi it's my first english presentation
00:00:23.750 thank you nice to meet you I mutual
00:00:31.590 mercy I'm came from Tokyo please call me itchy my Twitter account and good akiha
00:00:38.489 account is message wife I didn't love the programming and lighting called
00:00:44.250 anytime anywhere now especially with Ruby language i am writing called any
00:00:55.260 time but my popular my most popular open
00:01:00.690 source product is PHP based NZ just do it pro ha japanese do be snowed as a
00:01:08.330 programmer fro means hot tub i'm called according while in the hot tub now i'm
00:01:18.119 working at japanese startup company week who is of rogue apps that had released
00:01:25.259 food photo sharing application for the iphone android but the application are
00:01:31.320 not built on mobile ubi their native application anti September I had worked
00:01:37.770 at observateur that it released a teeny mobile is javascript-based iphone and
00:01:44.430 android development framework but now i'm working on mobile v it's competitive
00:01:52.649 titanium over a movie ha mobile v is my private project it is not for business
00:02:00.439 mobile ruby is iphone application development environment built on em Ruby
00:02:05.780 you can create iOS application using Ruby em Ruby provides bridge between
00:02:13.420 and a movie you can make you can call native classes and functions instead of
00:02:19.450 objective-c currently mobility support iOS only but I have fun for the Android
00:02:26.950 version i confirmed am Ruby can learn on android devices i'm already deleted
00:02:34.120 mobile week based game application i have a demo frisky
00:02:48.689 so a pretty big okay
00:02:55.290 okay sorry
00:03:05.280 it's a mobile Louie based application it's already released in that i found
00:03:13.260 the ios app store it's a simple game it's very students as smooth animation
00:03:20.370 it's like native application
00:03:41.890 you can download this game from iOS App Store pre such mobile Ruby in da in the
00:03:49.930 store mov mov is the latest movie
00:03:55.150 implements by matts i had a movie first time at 2010 at that time it's called
00:04:02.250 library em em rupee is designed for embedded systems it means small memory
00:04:09.220 and modular modular structure em ruby is more compact sang as a Looby implements
00:04:17.130 OS 10 m Ruby binary is round 406 kilobytes but Sylvie is over 2 megabytes
00:04:26.700 American even smaller a movie has modular structure if you want remove
00:04:32.919 mast library you can you can remove it easily so a movie support multiple
00:04:40.180 virtual machines Sylvie does not support yet instead M ruby has many limitations
00:04:47.680 em ruby is built on is all specifications it means M Ruby does not
00:04:54.070 support sled and many classes almost all Ruby standard libraries are not
00:05:00.340 supported so Louie James is not supported as a supported and M Ruby
00:05:08.860 still alpha bedroom sometimes I found em Ruby bugs what will be provided to be
00:05:17.770 power to the mobile devices especially mobile phone do you know during a wax
00:05:23.590 works is WX how what is rua based iphone
00:05:29.950 application to chain development to change samee removal ubi rule is a
00:05:35.770 popular language allowed embedded systems the syntax near action spricht
00:05:43.680 works was born about three years ago but it is not popular yet why the code is
00:05:51.789 lower engage I think they're their bridge bridge library is
00:05:57.500 one of Guru language does need a powerful language support i think rua
00:06:04.010 does not have enough dynamic programming capability metaprogramming is most
00:06:10.370 important more most powerful capability in rubies rubies metaprogramming can
00:06:16.400 make good lapping native libraries and make dsl for iOS hello world hello world
00:06:27.590 called iOS developer can understand this sample code it's really similar
00:06:34.610 objective-c in half of first half the
00:06:42.800 code defined the new cross my art bill done inherited from you I ought to be a
00:06:48.680 coke across and define new delegate methods to define method M ruby has not
00:06:56.990 sup support keyword argument yet it to point of a feature and M Ruby's hash is
00:07:04.070 not ordered it as same as a ruby 1.8 my
00:07:11.390 alert view defined on Ruby code it's ludicrous and objectivity grass Ruby and
00:07:18.830 objective-c both side can touch my alert view class in second half create my art
00:07:27.590 view instance and show these art box then call when you call objective-c
00:07:35.210 method you need start underscores as a slide shots uncontrollable if you want
00:07:43.100 to iOS application on movie TV you need to understand objective-c and the cocoa
00:07:48.950 libraries is it nonsense I think so too
00:07:54.490 I'm aiming for the disco or next version it looks like a true read Ruby code it's
00:08:01.130 not a similar Objective C octave recalled loved SQL
00:08:07.480 and provide good tsf to Ruby programmers so mobile ubi will up the cocoa
00:08:13.980 libraries and good dsl to Ruby programmers but I've at first I focus to
00:08:21.730 make cocoa bridge on a movie its fourth base line of mobile Ruby after that I
00:08:27.670 will make creating new api's I will talk
00:08:34.390 about mobile be internal mobility has made up five components at first a movie
00:08:40.960 is main components of mobile UV it was patched and some configuration changed
00:08:47.470 and second component is a movie see Frank it's an interface with c function
00:08:55.300 and am Ruby a movie see Frank provide an interface to M Ruby and sea level
00:09:02.980 functions it's same as the BDL library on see Ruby the code the code cords a
00:09:12.310 put c function from louie in tannery its combat do big swing to c string look up
00:09:19.600 puts function pointer to sorry look up put function pointer and the course of
00:09:26.800 function a movie can call all c function without specific extensions this
00:09:33.460 component is independent for EM Ruby WV if you want use it you can you can use
00:09:42.160 it sound component is improving Coco it's an interface to the objective stick
00:09:49.870 and Coco libraries I'm Ruby Coco is a bridge for Coco libraries which is the
00:09:57.820 iOS and OS 10 framework this library provided transparency communication with
00:10:04.840 am Ruby and Coco libraries em Ruby sorry
00:10:10.000 I'm Ruby Coco provide create a new class create new instance of cocoa class on em
00:10:16.240 Ruby you can also inherited from existing cocoa class on
00:10:21.430 Ruby in area of hello world example we inherited from you I add view from a to
00:10:28.930 my art view you attribute is a across and my Arab you defined in Ruby
00:10:36.660 cocoa and cocoa and ludacris can man create transparency natural interface
00:10:43.860 delegation and broke functions supported in this library in this library the
00:10:51.550 hardest part is a memory management objective c use difference counting and
00:10:58.260 am really use a mark and zip it's a different it's hot it's hard to free
00:11:06.940 object comp collector e in both environment now all objectivity classes
00:11:14.140 deletes method over later it's awful bottleneck for them for the performance
00:11:22.620 it affect all object thuds are included
00:11:28.330 and not related with a moving object each still have a problem that it cannot
00:11:36.550 detect the circular reference i will fix some some future probably i will delight
00:11:44.260 in a temporal first component is mobile
00:11:49.810 UV common it's for future ladies when we did it android version this library
00:11:57.550 provides common utt among iOS and Android bathroom can't currently it
00:12:03.550 provides require the choir and the road method or a standard em Ruby does not
00:12:09.459 support required and the load methods a rest component is Moby Ruby iOS mobile
00:12:18.339 Ruby iOS is the main part of the mobile Ruby it provides iOS specific utility
00:12:25.690 that are included xcode integration in the first version this component is poor
00:12:33.300 I don't know xcode I don't know xcode deeply I need to help about X coding
00:12:40.310 integration in the future mobi rupee will provide good lapa ap is it has some
00:12:50.100 compatibility between iOS and Android when you when you use third ap aight you
00:12:57.750 can use cocoa aps at the same time and load map I don't have detailed plan so
00:13:06.870 it's my private project I don't have a boss and management section I am I am
00:13:13.079 fast product label button until end of first quarter of the next year this
00:13:19.470 version support almost all objectives she futures I plan to start writing API
00:13:27.209 and tutorial documents after that I will touch next version it will have a lap
00:13:34.170 the FBI so you can call in Looby style
00:13:43.220 current status I already do this the mobile ubi game upper never rejected
00:13:49.410 this application in September I finally released mobile the alpha version it's a
00:13:55.260 first public version I'm keeping to update now I focus to lighting test code
00:14:01.740 until recently I like a lot a few tests re i start i used 12 ECI from two weeks
00:14:12.690 ago I think mobile luby's hardest part is red because mm Ruby does not suppose
00:14:21.000 that I load limited sled future and testing now currently mobile ruby is not
00:14:31.260 for ordinary Ruby programmers it's for EM Ruby and cocoa Jacques if you know of
00:14:38.630 objective-c and have interest to them in a movie please join to the diss my
00:14:45.209 project now i have three frequency equations
00:14:52.670 it's big question is the first question first question is the first different
00:14:59.519 from the Ruby motion Ruby motion is Arab oil based and the compiler to native
00:15:06.449 code it's only for the iOS about mobile
00:15:11.699 ubi will this Android bathroom and will be emotionally extended Ruby syntax and
00:15:18.800 the B motion is not open source will be
00:15:24.240 motion and mobile Ruby maybe we have a same goal but approach is very different
00:15:32.300 if you if we want makes a person i recommend to use Ruby motion it's stable
00:15:40.499 and faster than current mobile UV and second question can i use Ruby gems no M
00:15:49.199 Ruby does not have compatibility with Cee Cee Lo extension api's you need to
00:15:56.639 lighten II extension home m Ruby Bobby and matt has a discuss about em Ruby's
00:16:03.600 bajando be gems and at the third question can i use existing cocoa
00:16:10.589 libraries yes you can use almost all existing libraries I think cocoa pod
00:16:17.550 will be a good partner Coco Coco coco pots is a library manager for the Xcode
00:16:25.459 if you have more questions free to this
00:16:31.290 account mobile UV and post the github issues I really want a team mate
00:16:41.120 currently I'm are wrong if you have interest to this project please contact
00:16:47.399 two priests contacts to me thank you very much
00:18:00.000 hello everyone and the second part is a
00:18:05.260 title is M Ruby meet at eos autos a
00:18:10.470 first of all let us introduce observers hey I'm massage takahashi oh sorry I'm
00:18:19.780 massage takahashi and lobbyists and web application developer evil publisher and
00:18:26.260 the founder of nihon divino chi Japan regroup and I'm sorry but I'm not
00:18:32.350 embedded guide i'm very new before and it was and my name is Yuri your money
00:18:41.380 I'm holy programa though I intelligent and very system okay a before toast we'd
00:18:57.310 like to ask you some questions please
00:19:02.980 raise your hand I've used adios autos who a one two three four five six thank
00:19:11.110 you about 10 people and please raise your hand I loved I always they're not
00:19:17.320 interested in a bit so much I don't mind okay no problem thank you very much i
00:19:24.880 love iOS too so at today's topics here
00:19:31.860 what emitted systems and in showing a demo and explain how to use em Ruby with
00:19:38.740 Otto's a primal for I'm afraid of this
00:19:47.440 talk as you aware i'm not though I don't
00:19:54.910 talk well I can't talk well and the a
00:20:05.690 exit sorry so a no tox might be tired
00:20:10.879 and boring so we can change the title new title is who moving for ninjas thank
00:20:21.919 you I think emitted systems are very
00:20:27.620 different with for example web application and enterprise the systems if web application and apologize systems
00:20:36.019 are like some lights and embedded systems are like ninja injured we know
00:20:41.629 ninja some light is playing the leading
00:20:51.110 role and the powerful soldier and they are in front and the very remarkable MHC
00:21:00.769 seems very different as they are playing the supporting law and the austere
00:21:07.129 soldier and they're behind and they control others control other things so
00:21:16.330 even if movie is widely in some right word same robe is not might not be fit
00:21:23.720 to ninjas well I think if it we saw what
00:21:33.019 need of ended system or a water ninjas rules its main purpose of immune systems
00:21:39.740 are controlling other devices a subtract sensors and actuators and the very
00:21:50.360 important need of amulets system and its Ruby hidden as much as possible in other
00:21:57.409 words they should consume less resources the resources here are not only space
00:22:03.379 but also times a time is resources 08
00:22:12.830 immune systems are widely spaced around us a for example digital cameras a
00:22:20.600 microwave ovens a B vending machines automobiles a traffic signals they be
00:22:29.910 used in embedded systems many ninjas are hidden behind our daily life is we'd
00:22:37.740 like to use em Ruby with them eh but we
00:22:52.140 make a p dot yeah we make a simple a
00:22:59.190 movie demos quick now hey here is a demo
00:23:07.680 hardware we use food it fm3 microcontroller aboard a US m ruby
00:23:16.350 system hey its core is a arm cortex m3
00:23:21.900 and it has a 128 kilobytes lamp and one
00:23:28.410 megabyte long it can be connected to pc on co and it has small LED the
00:23:42.990 application in this demo has two tasks the first tasks is M will be interactive
00:23:48.780 shell like i lv you can send a memo be
00:23:54.990 called from pc to the board then we would evaluate the code and respond
00:24:00.300 delayed dissolved a thrill CEOs the second test is bringing a eat ask the
00:24:07.020 board has hardware clock so the task use it and turn on and turn off the LED at
00:24:15.240 intervals of 1 seconds per 1 seconds so let's try the demo
00:24:48.290 now we're preparing a video device and a
00:24:58.870 co speedo and me I did so I think models
00:25:09.280 hey hey okay a comment about
00:25:25.380 this is a console on any movies initialization is dumped in don't a
00:25:40.300 this is both of us and this is a boat
00:25:47.880 thank you this is arm chip and this is
00:25:56.260 LED blinking now endo e oops sorry
00:26:14.400 p I and now have type A equals one and a
00:26:24.190 be equal to a plus p equal three and the
00:26:34.210 finish your method a day food and a in
00:26:42.989 Davos so a 2 3 is 9 and 4 10 is 100 okay
00:26:57.519 it works
00:27:10.230 right
00:27:23.030 latest our requirement first blinking LEDs cyclically second passing and
00:27:33.640 coordinating from my code at good inland
00:27:38.900 time sod CL communication without roasting data we should explain the
00:27:49.180 priority of tasks each task has a priority and if an updated task has
00:27:57.410 higher priority the lower priority task must become waiting immediately it's
00:28:05.030 important that led blinking task has higher priority item a movie task Rishi
00:28:15.680 cyclic blinking blinking task edit ability task is activated at livia
00:28:22.850 intervals after turning on or turning of the LED the task is terminated the
00:28:34.580 interactive MV task when the LED task is
00:28:40.580 activated the status is saved when l dt task is dominated my v task is running
00:28:50.110 Emily task is continent if a task are interrupted at all star system is suited
00:29:00.380 to certify taught these requirements
00:29:07.990 altos tesco system with us sorry there
00:29:15.710 are many others in the world but reaches tapas SP for our system tapas SP is an
00:29:24.110 open source real-time operating system its lessons is like PSD style and its
00:29:31.880 code is based on my micro item specification I did i disturb us all dinner in
00:29:40.730 television model the first kinase has
00:29:46.100 many variants please use tapas SP because it's the standard profile of
00:29:53.780 tapas alto scanners now change to speak
00:30:01.400 out okay and now we explain the eggs
00:30:09.610 implementation of the system and let's show the see the component of our system
00:30:18.920 a do is a timer LED and co a we use them
00:30:28.850 with two plus one tasks the main task activate and will be task and editors
00:30:35.380 after that main task is sleeping in
00:30:42.220 topples you can write your application with three files a civilized and hit a
00:30:49.970 virus and computer CFG file configuration files of toppers
00:30:57.430 configuration files defined tasks and other things with this file you can
00:31:04.730 locate the memory of tasks statically study curly and statically memory
00:31:11.810 allocation is important for embedded systems then we talk about very basic of
00:31:21.880 Ruby tonos the NT of my bbm is a struct
00:31:30.230 struct MLB state this and the function
00:31:35.300 Emma be open generate a vm and it's finished with the function Emma be
00:31:41.510 closed in all the most we use puzzle and
00:31:47.960 code generator but it's option optional when you use
00:31:53.719 compiled code you don't need puzzle and code generator but you want to you want
00:32:01.369 to do like this demo you must include them in this is the digest of the demo
00:32:10.669 code hey jay king context and generating
00:32:19.489 under enjoys puzzle and passing do be called a generating white coat and write
00:32:25.669 the bytecode and and evaluating it
00:32:39.110 but 100 qoy to alarm is too small for a
00:32:44.129 movie so we need to dye it so we use
00:32:49.860 three way to shrink our lamb thighs modify including MLB conf dot H and a
00:32:56.429 applying symbol of our a part and shrinking my video first a modifying
00:33:05.370 including MLB conf dot H file this file
00:33:10.590 use a macro definition to configure a movie subtract em avi use fold em Emily
00:33:19.799 Franco log 3 marks and others and so on
00:33:25.460 we use a treatment close to reduce a our
00:33:32.519 memories the second way is applying
00:33:38.009 symbols are a part a symbol in a blue B are implemented with a hush data
00:33:44.009 structure so our punch ain't to use re
00:33:49.309 instead of hush to reduce memory use the
00:33:58.590 soul is a shrinking my belief my belief is a movie standard library written in
00:34:06.330 blue be a so you can remove it to deduce
00:34:12.599 from hey by the way it is on emulator of
00:34:20.129 FMT board the America is a qemu qm patched version with DUI in Java you can
00:34:29.639 download them on the net from this teeth URL so the conclusion you can use em
00:34:40.800 loopy with our toes a whale and a we hope these talks helps your MLB life
00:34:47.149 thank you so much i loved i'ma start
Explore all talks recorded at RubyConf 2012
+46