![Yusuf Zeren Profile](https://pbs.twimg.com/profile_images/1112492240671256577/ZvLKx75h_x96.png)
Yusuf Zeren
@yosooff
Followers
858
Following
16K
Statuses
3K
software developer #react #reactnative @trendyoltech
Istanbul
Joined June 2010
React Native yazanlar da bu yazıdaki gibi son bikaç sene benzer git geller yaşadık şükür tünelin ucu iyi yere çıktı
A lot more went into the decision to go all in on React Native (RN) than @mustafa01ali highlights. It wasn’t easy. Some people quit because of it & the decision took years to finalize. Here’s the untold behind the scenes story… In 2015 Facebook released the first version of RN and a few of us tried it out. Like everyone at the time, we felt the pain of having 3 teams for each feature. Our mobile apps were always behind the web but our users were on mobile a lot more. A lot of our dev team was dabbling with RN, @tobi wrote a prototype of our new product Sello and I rewrote an internal web into an RN app. There was a lot to like, but a lot of questions. More importantly if there was a new platform that could 5-10x our productivity we would be negligent to not understand it more. I’d had a lot of experience building SWT, a cross platform UI layer for Java. I wasn’t too worried about the technical feasibility, browsers translate cross platform code to native widgets all the time. But doing that across a js bridge seemed like a terrible decision. SWT was built with native bindings on each platform and it was fast. Almost more importantly to understand was knowing that all great open source projects needs a solid core team and good dogfooding strategy (eg, build real apps themselves in parallel). And there was a lot of questions about both. Facebook didn’t have a great OS track record at that point (see Presto, Parse, etc...). We were still intrigued. We organized a hackathon and decided to get the company to try out RN en masse. We were about to rewrite the Shopify mobile app and the timing would be good. But we wanted to get as many smart minds to look at RN from all angles first. The hackathon confirmed that because of perf and immaturity of the tooling, it just wasn’t ready. We got our seniors devs to evaluate. Our mobile app rewrite started a year too late and we didn’t think paying pioneer tax at this point made sense. Or that we could afford to delay the relaunch or risk performance. In hindsight, maybe we should have taken more risk and participated in core RN work earlier. My personal biggest fear was Facebook dropping the project and we would be stuck with a prototype of a good idea. But we kept an eye on RN, we kept dabbling. I started reading the core source code, tracking PRs, and getting to know how the RN team was working. By 2018, more mobile projects started and more pain of having 3 teams on each was a huge drag. We were writing mobile foundations for Android and iOS separately with homegrown SWR / React Query like libraries on each. One platform was always a bit behind the other. While this was happening I wrote a small game ( in RN to understand and push more deeply the perf aspects. Animations, transitions, core tooling. This was around when Expo launched, shortly before Reanimated, but decided against using it then. Funny to think that today with @expo you barely have to open XCode or Android Studio anymore. Then we acquired TicTail and @siavashg and team had built a great RN app. I travelled to Sweden and looked deeply at their app and how they did a great job of combining the best of RN and native (camera and image editing). We’re now in 2018 and we were on the precipice of a major overhaul to the POS app, the Arrive app (precursor to the Shop app) had gone viral but we only had an iOS version. We acquired TicTail and with it a very solid RN real world knowledge. That team eventually shipped Restyle, the first ever type-enforced styling library for RN by @JoelBesada. By then, the core team at Facebook had proven that they were committed and we knew that Facebook was dogfooding in their own apps by then with hundreds of millions of users. There was a solid plan for removing the bridge and JSI + Turbo Modules was a good direction. So we decided to rewrite the Arrive app in RN in a 6 week spike. That meant we got Android and iOS which we needed and can see what it’s like to being an RN app to production. The team was small and very open to it. It avoided the drama of making a company level shift. The rewrite went well, we knew where the rough spots hid and we hired a few RN experts. We launched the RN version of Arrived on both platforms. Then AirBnb decided to post a take down piece on RN and how they have given up on it. They were stopping all investment. That raised another round of internal questions and concerns. At that point we had to make a decision. Go all in or not. What AirBnb wrote didn’t match with what we were seeing in terms of progress on RN. Reanimated had launched and there was a strong push in the RN community for better performance. And our own RN chops were getting deep. Our decision was not based on the current state of RN but the arc of progress and its potential, and we had to help push that arc upwards. We couldn't just cross our fingers and hope that others would do it. So we went all in. I gave @fnthawar the mission of pivoting our entire mobile organization. He had just joined Shopify then and led the team writing the new POS app. The rules were: - We had to put money into the OS community not just use it but contribute to it, hence sponsoring software mansion for all their RN OS contributions. - We still need native mobile skills, but everyone should now learn RN + TS. - We couldn’t compromise on performance - We wanted to champion RN worldwide and posted a blog about our decision to let the RN community know that we will be learning in and helping. We wanted to counter the FUD around the AirBnb blog. Both the POS app and Arrive, which turned into Shop, were going to be fully RN. Let’s go! There was decent push back from some devs. A few quit over the direction. But we were able to build teams with web devs and ship features in sync between web and mobile. There was always current RN limitations to point at, we found a button press with a settimeout() in the core js code. Another reason for someone internally to say « I told you so, we should have used Flutter ». But fundamentally the core RN team at Facebook and worldwide was expanding, the pain of 3-team products was not going away, and the promise of learn once for a product focused company was alluring. Back to Facebook. While it didn’t have the best OS track record, it did have incentive. Apple or Google had no reason to help us product companies build universal apps. They wanted lock-in, not multi platform. Facebook had skin in the game and it was time for us to do the same. We hired @wcandillon to come and review our initial POS RN implementation, the navigation and core UI interactions of the app were tricky and had to be lighting fast, so getting more eyes on that early was key. Then we went all in. Told the world about it so that we could hire people to help and also believed in the potential of RN. What looked like a quick and fast decision was in fact 4 years in the making. While it looked easy on the outside, it was carefully made with tons of homework, a lot of people involved in helping, and thought. It could have back fired. We could have written our own version of the AirBnb blog. But the community that built around RN worldwide is what inched RN over the line from a high potential platform into the default one. 9 years after RN launched, I’m at my desk this morning porting to the new architecture. It’s still a joy to write RN. Sipping my tea adopting Expo 52 and the new RN 0.77 that dropped yesterday (PS: which we should have bumped to 1.0 by now). Grateful to the RN community. What looked like a bet on a technology, was in fact a bet on the people behind it. And they turned out to be the real deal. Thanks to all the hero’s behind the « not so overnight » technical decision.
0
0
5
@B1810L @dwaynemann11 @HoustonRockets GSW was straight up cookin' from downtown, hittin' 70% of their threes in the first half. Can't put that on Alpi, no way. He was ballin' in the third quarter too. Him and Tari sparked that comeback fire together. Benching Alpi for this game was wrong
1
0
1
@lemarcasports Ya bu takımın kuruluş amacı, kültürü Türk olmayan takımları yenmektir. Nasıl böyle sırıtırsınız ve destek verirsiniz. Kovmuyorsanız bari kaşınızı çatın da adam bir şeyler yanlış herhalde deyip ya istifa etsin ya da dersine çalışsın
0
0
2
@ZaferAyan Genel android'de bir memory leak problemi vardı. Böyle bir sürü issue var şu an. 0.75'te çözdüklerini iddia ediyorlar da bakıcaz
0
0
2
@aras_bayram Selamlar, Corlys’in diğer oğluna ejderha alımları varmış bir dene belki atanırsın demesi yakıştı mı KPSS mi bu
0
0
1
@aras_bayram Abi selamlar, bu bölümün adı boş tencerenin deviremeyeceği iktidar yoktur olabilir miydi
0
0
2
Müziksiz kafe zor olmamalı ya nolur bir kafede de müzik çalmasın. Normalde insan müzik dinlemek için kulaklık takar, ben kafelerde müziği duymamak için kulaklık takıyorum
Ya şu kafede müzik çalma işini kim başlattı ya? Sabahın dokuzu, adamın biri böyle derin bir sesle fısıltılı bir şarkı söylüyor. Ortamda kimse yok, ben, omlet ve dandik haut-parleur'den bir yatak odası sesi Bir işimiz de estetik olsun ne fayans bir ortam oldu burası
0
0
4