The tirade against Apple in the middle article is pretty silly. Android OS has a terrible bug that means you can’t listen to your preferred music on your device. iOS does not have this bug. As someone who uses and develops for both OS, this seems like a no-brainer to me.
HN user
iOSGuy
Seems like both AirBnB and Udacity made the mistake of not investing enough in the tech. If you keep building out full native features while transitioning a brownfield app to RN, you’re going to have this fragmentation problem.
I’ve converted, (with lots of help of course), a massive brownfield platform product to RN. It took a lot of work, building the right bridging layers, retraining the team, figuring out best practice, etc. We still have a lot of tech debt, but it works!
Pros: Solid cross platform development, easy to teach, easy to get up and running on Xcode/Android Studio (running and working on both in first week on the job), easy to teach the native languages from there, real time bug fixes, fast iteration times on new features. Cons: No 64b on Android, Android peformance lags behind iOS, RN bugs, build process was tough to nail down, no built in navigation support.
We’ve now solved most of the huge RN exclusive problems we had with RN we had when we started out, so at this point I’m not going to be abandoning it anytime soon. There are still problems, but just your average engineering problems, same as you’d get in native development land or any other platform. It’s been about 3 years now, with a 10+ person team now, so maybe I should write it all up somewhere.
It doesn’t compile it to JVM, it runs a JS engine, and then passes some calls into the native side over an asynchronous bridge, and the native code then builds native views at runtime. It’s a middle ground, and it’s super useful in some cases, and super dumb in others. It’s not a silver bullet, it doesn’t solve all the problems, but it has some good use cases.
I try to use ObjC PPC macros for things that are constant for the run of the program, and can be reasoned about globally.
For example, some good ones I use are isLandscape or isIPad, which are both variable depending on the user, but constant for the run of the app. Perfect for a PCH file I think.
This is my thought exactly. I've written a few open source Swift components to learn the language, but it's just not ready to work on the scale that mobile software is reaching.
Mobile software development isn't about a developer or two building "apps" anymore, it's grown much bigger than that.
Swift is great for a small app, with a handful of developers. For a platform, which interops with multiple languages, being worked on by a large team of engineers, switching to Swift would just be silly.
Oh yeah, let me increase my compile times, the size of my SDK, add complications for my publishers, see zero performance benefit, build a ton of scaffolding code, add yearly tech debt until Swift is actually a mature stable language. Terrible idea!
It might be the gold standard some day, but for now it's just a kid compared to ObjC, and everything that comes with being a C based language. If you're learning to make apps, by all means, you should learn Swift, but it will be quite a long time before ObjC is dead and gone, so be prepared to learn both young padawan.
Not to mention, the hype train/bandwagon is really muddying the waters. It's probably a bad idea to take advice on how performant/powerful Swift is from a Zealot, or someone that's betting everything on it.
Is anyone besides No Startch selling this? I refuse to order from them anymore. :/
Mike, this line is completely and 100% inaccurate:
"Private APIs do nothing that a third-party developer couldn't do in their own code, if they knew how to write it."
There are a million things under the sun that private APIs have access to that wouldn't be possible with the use of public APIs alone, good developer or not. Prime example: "UIGetScreenImage()". That function allows you to take a screenshot of the device's entire screen, your app, someone else's app, the home screen of iOS. That's a pretty big security hole, is it not?
There are countless examples just like that one hidden inside the private API bubble. Things the OS needs to function, (although the OS may not need that particular example anymore) but could cause massive security issues.
Well, let's be clear here. I use React Native, and it would take me about 30m to write a bridged React Native method that could execute ObjC code dynamically, including accessing all the private APIs you could want.
You definitely will want to write images to file, then pass the file path over the bridge. That's an easy solution.
I've been using React Native cross platform for over a year, and it has a ridiculous number of issues, but they're trade offs. There are benefits that come with it. React Native is just another tool, evaluate it as you would any other framework.
I use React Native and he's mostly right. Coming from the perspective of a native platform, this ecosystem is bat shit insane. It's harder, full of pitfalls, rife with complications, and rickety as all hell.
However, there are also some pretty excellent benefits that come with all the Bad of React Native and JS so for the moment, it can be very much worth the trade offs. I've been working with it for over a year, and for now I'll be sticking with it.
My girlfriend worked on it in a way, and while I thought it was kind of a silly idea we got one for the house.
I've grown to love it as the best jukebox I've ever owned. The speakers absolutely rock, and once you've enjoyed the sweet bliss of being able to tell your jukebox what to do, "Alexa, this song sucks, NEXT!", "Alex, stop!", "Alexa, play '<insert song, artist or album here>'", you'll never want another music player. <Sorry Jeff, but it really is the best feature by far, and that's nothing to be ashamed of.>
I also use it as a cooking timer, and for news in the morning. I can get a good hour out of "Alexa, tell me the news.", from BBC, to NPR, to just the weather for the day. Oh, and "Alexa, Simon Says <insert random things here>", has entertained us quite a bit.
The downsides, it's voice recognition still has trouble when multiple people are speaking, or it's already playing musc if it's really loud. (ie: outside listening to music on the Echo inside) Also, the apps for it just still aren't all that useful, the beat box was fun for about five minutes, and that's it. Possible I just haven't found the good ones yet.
All in all, it's still mostly a toy for early adopters who like to play with gadgets, but I can definitely see how it will eventually be incredibly useful. We now live in a Duplex, and I want a second one for the second floor.
Awhile back I had a Chrome extension that would show a fork of a source repo if it had more recent commits. This was super helpful for finding interesting bits of code. I can't find it anymore, anyone know what I'm talking about?
I've been working on the Skillz SDK for awhile. If you're a game developer looking for a different way to add social interaction, competition, leaderboards, etc. you may want to check it out.
reddit.com/r/hackernews the new hacker news.
If you haven't heard yet, Uber has recently raised it's fees on UberX drivers from 5% to 15%. At first, I was completely behind them, but they're turning into a pretty cut throat company.