For anyone who's interested, I gave a talk called "Let's build a React Native app in 20 minutes" [1] at the React Berlin meetup a couple weeks ago, where I took a little example React web app and "ported" it to React Native. It was my first time giving a talk at something like this, so it's a bit rough around the edges (and the audio quality isn't great because the primary mic's batteries went out a couple minutes in), but it might still be helpful if you're looking to jump in.
I still think it's ridiculous that people thought the previous PATENTS file was a Trojan horse with nefarious intent, but it's nice to see them making their intention unambiguous.
It doesn't matter what people thought. The complaints were coming from people at big companies with legal departments. The lawyers' job is to make sure there are no legal vulnerabilities, the same way it's your job to make sure your code doesn't contain any vulnerabilities. Intent is irrelevant.
Exactly. Looks like Google was among the companies with legal complaints: https://news.ycombinator.com/item?id=9271331. I wonder if the new version of the grant was enough to get them to reconsider? It'd be really interesting to see more of Google in the React community.
I don't think ambiguity was the problem with the old version, but this was: "The license granted hereunder will terminate ... for anyone that makes any claim ... that any right in any patent claim of Facebook is invalid or unenforceable."
That's pretty clear and unambiguous. And many people find it clearly unacceptable.
The new version seems... certainly a lot more complicated. It looks to me like it merely prevents you from accusing Facebook of infringing your patents, but no longer prevents you from trying to invalidate their patents if they attack you. But for all I know it could be saying exactly the same thing as the old one in a more obfuscated way.
Oddly, I was searching for React Meetup groups just a couple weeks ago and the group didn't show up. (From San Francisco, search for "React"). I see that you were Founded Mar 15, 2015. I wonder if I just missed it or Meetup takes a while to index new groups.
I have built some basic apps like the to-do list using Swift and Objective-C but haven't built anything significant yet. I have an idea for an app I want to build in the coming weeks, but I'm unsure if I should use this as an opportunity to learn React Native or just go the Swift route and really cement my knowledge there. Can anyone who's tried both weigh in?
I'm the opposite. I've done about 2.5 months of React Native now. I'm pretty certain React Native is what you want to roll with. Anything you can do in Objective-C can be done in React Native (since you can create Native modules anywhere RN falls short). You could see MAJOR improvement in development time. I'm not a mobile developer and I tried writing a mobile app a while back - I'm completely useless. With React Native, I've made huge strides in developing a fairly complex app with a completely custom look and feel. I'm sure if I had stuck to native coding I'd either never finish, or this app would take me an order of magnitude more time to complete.
If you want an example of how awesome React Native is, go check out Apple's example app "AVCam" then take a look at the example code for my react-native-camera module on GitHub.
How do you handle the storage tier (e.g. Core Data) of your react-native apps? Do you just write native Obj-C that handles interacting with core data and integrate it w/ your react code?
Yeah that would be how you'd do it. Writing modules is dead simple too. Doing something like that would just require you making an async interface to your Obj-C Core Data manager.
React Native has a really low barrier for entry, it's easy to knock something together quickly though it's not ready for certain kinds of more complex apps yet IMO. The community is putting out new components and plugins quickly though, which is encouraging.
A bit of both, I would like to finish this app within the near future, but I also am interested in exploring mobile development as a career. I guess my main question would be, is there enough overlap in the two that learning React Native would help ease me into development in Swift.
I am yet to start on mobile development. There is a concern in the industry about writing same app 2,3 or more times - ios, android, windows etc.
React native seems to be a step in the right direction. There are lot of options for this track besides react like ionic, phoneGap, appcelerator, telerik, meteor and there are few more.
What you recommend out of these platforms for someone who is just getting started with mobile development? Thx
react native is better compared to appcelerator titanium - their thesis is that due to the dom's limitations, hybrid apps currently can't compete with native (compare scrolling quickly in a web vs native app), so compiling to native components is the way to go
phonegap, ionic, meteor etc are in the hybrid app camp, and their take is that if your app doesn't need to have native like performance, then just write one app and deploy on multiple platform
I personally think react native is an intermediate step to the eventual goal. I'm a supporter of the open web, hopefully we'll figure out a way around dom's limitations, and hybrid apps will be able to match performance of their native counterparts.
React is pretty good, the most promising in a while, but Appcelerator still has far more API coverage on both major platforms than React, Telerik, or anyone else. Pay special attention to what kind of native integrations the app will require before choosing a framework.
If you have experience with AngularJS, Ionic is a great option. Ionic v2 is in the works and will be built on Angular 2. The UI is built on Sass and it's very polished with a very talented and motivated team behind it. Ionic has it's own toolset that integrates with Cordova.
If you write most of your code in JS, you technically don't even need to build this on a Mac. For development, you could get away with just updating the bundle and re-signing the app locally.
Don't forget to check out the companion Gist [2].
[1] https://www.youtube.com/watch?v=9ArhJiMGVDc
[2] https://gist.github.com/peterjmag/2ef39ba5d25f3f1e0008