In this book, I’ll introduce you to React Native for native mobile iOS and Android development… and do it quickly. We’ll cover topics such as
Why React Native is Awesome
Setting up React Native Development for iOS
Hello World and the React Native CLI
Styles and Flexbox
Main React Native UI components
Importing Modules into an Xcode Project
Project: Weather App
This book is about getting started with React quickly and not about React Native, which is technically a separate library (or some might even call it a framework). But I figured after eight chapters of working with React for web development, it would be fun to apply our knowledge to mobile development by leveraging this awesome library. You’ll be amazed how many React Native skills you already know from React.
I know that many of you perceive Guy Kawasaki as some sort of genius and visionary. Indeed, he’s published 11 (eleven!) books, worked with Steve Jobs, and has strong opinions. Not that long ago, I attended his talk at TheNextWeb event where he was promoting his new book APE: Author, Publisher and Entrepreneur. The book is about self-publishing woes. Although his tips and APE have come in very handy for my lean-pub edition of Rapid Prototyping with JS, I somewhat disagreed with Guy’s casual remarks about two Google products: Google Plus and Android. Mr.Kawasaki said that Google Plus is to Facebook, what Apple was to Windows: not many people use it, it’s better and everybody thinks it’ll die soon. :-) Then the acclaimed author half-jokingly said: “Android is for real men”. Seriously?! Here is my story of going from a hard-core Android user to an iOS fan in less than a year.
I jumped on the smartphone train a little bit later than most of my type (early adopters, geeks, etc.) because I didn’t like Apple, Inc. and its products. And I also had this notion that each device should do its own distinct function well rather than try to be a Swiss Army knife of gizmos. For example, taking pictures with a photo camera, listening to music on an MP3 player, voice calls with a dumbcell phone, taking notes on a PDA and waking up to an alarm clock. ;-) Of course, my conservatism started to fade away as hardware and software improved. Slowly I’ve noticed that I’m watching videos on my 4“ MP3 player, reading books on my Dell Axim X51 and using an alarm clock ”app" in my Nokia cell phone.
I guess it was time for my first real smartphone. I’ve already used many Google web application so I went with T-Mobile’s myTouch 3G with Android 1.6. The device was slow and buggy like hell. The phone was unusable to the point that I had to root it, and to install an aftermarket firmware CyanogenMod to make the experience at least somewhat bearable. Despite all of that, what I’ve come to realize is that I really needed a smartphone in my life (surprise, surprise!). Boy, I was wrong when I thought that if I had a computer at home and one at work, then I didn’t need yet another one in my pocket. ;-)
Then, a few iterations of Android OS and a few devices later — I had an entry-level LG Optimus One and a gorgeous 4.5" display Samsung Infuse 4G — I really started to appreciate:
Seamless integration with my everyday apps: GMail, Google Docs, Calendar, Reader and Maps.
Abundance of free apps.
Customization done by device manufacturers and those I can do by using widgets and aftermarket firmware.
It wasn’t always roses and butterflies. Here are some of the problems I experienced using Android-powered devices (I also had a 7" Samsung tablet):
No Instagram-like hip apps when they’re already available at Apple App Store.
Phone barely lasted one day, despite multiple replacements and having an extended battery.
Constant “Force close” (analog of a blue window of death on Windows PCs) and the need to restart the device.
Nevertheless, I was blissful in my ignorance which was totally destroyed by my switch to Max OS X from Windows XP/7. The reason for this was that I had to sync data using 3rd party apps and adapt to new behaviors. I wasn’t happy. Because when I’m not happy I usually find way to fix it. :-) The perfect timing of iPhone 5 and sluggishness of Android 2.3 (I had over 100 apps installed) made the pre-order of iPhone 5 64Gb a no-brainer.
Things that I’ve come to enjoy and appreciate since then:
iPhotos, Photo Steam and Photo Roll are a simple and robust way to sync photos across Macs, iPads and iPhones. Also, seamless integration with iCloud and iTunes makes my life easier.
iPhone 5 battery life is amazing, on a typical day I use only 30–40% of a charge which means I can go for about two days without recharging.
iMessage/Messages is a superb feature with allows me to take conversations I’ve started on iPhone or iPad to my MacBook or vice versa.
Retina displays on both iPad and iPhone 5 are feasts for my eyes.
Last but not least, LTE is lightning fast compared to the fake 4G standard of HSPA+.
Again as with Win vs Mac, iPhone doesn’t make me think about unnecessary things like updating to a custom flavor of OS or about solving synching issues.
I know that Guy Kawasaki plays hockey, which is no doubt a manly recreation, but I think that he was wrong about Android. In my humble opinion, Android is similar to Windows because:
Android OS is loosely integrated with hardware (except for Google Nexus produced by HTC).
Google has a licensing revenue model which is similar to Microsoft selling a copy of Windows. By the way, Google licenses Android for $10 per device.
Android devices are very fragmented; there are dozens of companies, each with its own modified version of Android, and even with apps and entertainment stores, e.g., Samsung Hub.
All of these make apps development slower and introduce more challenges for developers while being less appealing products for end-users. As with Windows, the main advantage of the Android platform is its lower price and growing army of users!