<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" style="font-size:16px;"><head></head><head><meta charset="utf-8"/><!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge"/><!--<![endif]--><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="x-apple-disable-message-reformatting"/><meta name="format-detection" content="telephone=no,address=no,email=no,date=no,url=no"/><meta name="color-scheme" content="light"/><meta name="supported-color-schemes" content="light"/><title>Aug 14 2026: Issue 18 </title><!--[if mso]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--><style>
:root { color-scheme: light; supported-color-schemes: light; }
body { margin: 0; padding: 0; min-width: 100%!important; -ms-text-size-adjust: 100% !important; -webkit-transform: scale(1) !important; -webkit-text-size-adjust: 100% !important; -webkit-font-smoothing: antialiased !important; }
.body { word-wrap: normal; word-spacing:normal; }
table.mso { width: 100%; border-collapse: collapse; padding: 0; table-layout: fixed; }
img { border: 0; outline: none; }
table { mso-table-lspace: 0px; mso-table-rspace: 0px; }
td, a, span { mso-line-height-rule: exactly; }
#root [x-apple-data-detectors=true],
a[x-apple-data-detectors=true],
#MessageViewBody a { color: inherit !important; text-decoration: inherit !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important; }
span.MsoHyperlink { color: inherit !important; mso-style-priority: 99 !important; }
span.MsoHyperlinkFollowed { color: inherit !important; mso-style-priority: 99 !important; }
.a { background-color:#EAEAE4; }
.b { background-color:#464646; }
.c { background-color:#FFFFFF; }
.d { background-color:#1CEF69; }
.d2 { background-color:#0050E3; }
.d3 { background-color:#0050E3; }
h1 a { text-decoration:underline;color:#000000 !important;font-style:italic; }
h2 a { text-decoration:underline;color:#000000 !important;font-style:italic; }
h3 a { text-decoration:underline;color:#000000 !important;font-style:italic; }
h4 a { text-decoration:underline;color:#000000 !important;font-style:italic; }
h5 a { text-decoration:underline;color:#000000 !important;font-style:italic; }
h6 a { text-decoration:underline;color:#000000 !important;font-style:italic; }
h1, h1 a, h2, h2 a, h3, h3 a, h4, h4 a, h5, h5 a, h6, h6 a, ul, li, ol, p, p a { margin: 0;padding: 0; }
h1 { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-weight:600;font-size:28px;color:#2A2A2A;line-height:1.75;padding-bottom:12px;padding-top:12px;mso-margin-top-alt:12px;mso-margin-bottom-alt:12px }
h2 { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-weight:600;font-size:24px;color:#2A2A2A;line-height:1.5;padding-bottom:12px;padding-top:12px;mso-margin-top-alt:12px;mso-margin-bottom-alt:12px }
h3 { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-weight:600;font-size:20px;color:#2A2A2A;line-height:1.25;padding-bottom:12px;padding-top:12px;mso-margin-top-alt:12px;mso-margin-bottom-alt:12px }
h4 { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-weight:600;font-size:18px;color:#2A2A2A;line-height:1.125;padding-bottom:22px;padding-top:22px;mso-margin-top-alt:22px;mso-margin-bottom-alt:22px }
h5 { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-weight:600;font-size:16px;color:#2A2A2A;line-height:1;padding-bottom:12px;padding-top:12px;mso-margin-top-alt:12px;mso-margin-bottom-alt:12px }
h6 { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-weight:400;font-size:14px;color:#2A2A2A;line-height:01.3;padding-bottom:12px;padding-top:12px;mso-margin-top-alt:12px;mso-margin-bottom-alt:12px }
p { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-weight:400;color:#3D3B3B;font-size:16px;line-height:1.7;padding-bottom:5px;padding-top:5px;mso-margin-top-alt:5px;mso-margin-bottom-alt:5px; }
p a, .e a, ul a, li a, .h a, .h2 a, .h3 a { word-break:break-word;color:#000000 !important;text-decoration:underline;text-decoration-color:#FFFFFF;font-style:italic; }
p a span, .e a span, ul a span, li a span { color: inherit }
p .bold { font-weight:bold;color:#3D3B3B; }
p span[style*="font-size"] { line-height: 1.6; }
.f p { font-size:12px;line-height:15px;color:#3D3B3B;padding:0; }
.f p a { color:#3D3B3B !important; }
.g p { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-size:16px;line-height:22px;font-weight:400;margin:0; }
.g p a { text-decoration: underline; }
.i p { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;line-height:1.5;font-size:14px;color:#FFFFFF; }
.i p a { color:#FFFFFF !important; }
.i2 p { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;line-height:1.5;font-size:14px;color:#FFFFFF; }
.i2 p a { color:#FFFFFF !important; }
.i3 p { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;line-height:1.8;font-size:14px;color:#FFFFFF; }
.i3 p a { color:#FFFFFF !important; }
.h p a { color:#595959 !important; }
.h2 p a { color:#595959 !important; }
.h3 p a { color:#595959 !important; }
.f p a, .i p a, .i2 p a, .i3 p a, .h p a, .h2 p a, .h3 p a { text-decoration:underline; }
.j { border-top:2px dotted #EBEBEB; }
.k p { padding-left:15px;padding-bottom:0px;padding-top:6px;mso-margin-top-alt:6px;mso-margin-bottom-alt:0px;mso-margin-left-alt:15px; }
.o { background-color:#000000;border:1px solid #000000;border-radius:5px; }
.o p { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;padding:0px;margin:0px; }
.l p,
.l p a, .l a { font-size:14px;line-height:20px;font-weight: bold;color:#FFFFFF;padding-bottom:6px;mso-margin-bottom-alt:6px;text-decoration:none; }
.m p,
.m p a { font-size:12px;line-height:17px;font-weight:400;color:#FDFDFD;padding-bottom:6px;mso-margin-bottom-alt:6px;text-decoration:none; }
.n p,
.n p a { font-size:12px;line-height:17px;font-weight:400;color:#000000;padding-bottom:6px;mso-margin-bottom-alt:6px;text-decoration:none; }
.p { background-color:#FFFFFF;max-width:520px;border:1px solid #E1E8ED;border:1px solid rgba(80, 80, 80, 0.3);border-radius:5px; }
.q { font-size:16px;font-family:Helvetica,Roboto,Calibri,sans-serif !important;border:1px solid #e1e8ed;border:1px solid rgba(80, 80, 80, 0.3);border-radius:10px;background-color:#FFFFFF; }
.q p { font-size:16px;font-family:system-ui,Helvetica,Roboto,Calibri,sans-serif !important;color:#222222;padding:4px 0; }
.r { border:1px solid #E1E8ED !important;border-radius:5px; }
.s p { font-size: 14px; line-height: 17px; font-weight: 400; color: #697882; text-decoration: none; }
.t p { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-size:12px;line-height:1.5;font-weight:400;color:#000000;font-style:italic;padding:0px; }
.v { border-radius:10px;border:solid 0px #EBEBEB;background-color:#000000;font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:#FFFFFF; }
.v a { text-decoration:none;display:block;color:#FFFFFF; }
.w p { font-size:12px;line-height:15px;font-weight:400;color:#FFFFFF; }
.w p a { text-decoration: underline !important;color:#FFFFFF !important; }
ul { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;margin:0px 0px 0px 25px !important;padding:0px !important;color:#000000;line-height:24px;list-style-type:disc !important;font-size:16px; }
ul ul { list-style-type:circle !important; }
ul ul ul { list-style-type:square !important; }
ul ul ul ul { list-style-type:disc !important; }
ul ul ul ul ul { list-style-type:circle !important; }
ul ul ul ul ul ul { list-style-type:square !important; }
ul ul ul ul ul ul ul { list-style-type:disc !important; }
ul ul ul ul ul ul ul ul { list-style-type:circle !important; }
ul ul ul ul ul ul ul ul ul { list-style-type:square !important; }
ul > li { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;margin:10px 0px 0px 0px !important;padding: 0px 0px 0px 0px !important; color: #000000; }
.poll-choices > li { margin: 4px 0px 0px 0px !important; }
ol { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;margin: 0px 0px 0px 25px !important;padding:0px !important;color:#000000;line-height:24px;list-style:decimal;font-size:16px; }
ol > li { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;margin:10px 0px 0px 0px !important;padding: 0px 0px 0px 0px !important; color: #000000; }
li > p, li p { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-size:16px;font-weight:400;line-height:24px;padding:0px; }
.e h3,
.e p,
.e span { padding-bottom:0px;padding-top:0px;mso-margin-top-alt:0px;mso-margin-bottom-alt:0px; }
.e span,
.e li { font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-size:16px;color:#3D3B3B;line-height:24px; }
.rec { font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important; }
.rec__button:hover { background-color: #f9fafb !important; }
.copyright a {color: inherit !important; text-decoration: none !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important;}
.txt_social p { padding: 0; word-break: break-all; }
.table, .table-c, .table-h { border: 1px solid #F3F3F3; }
.table-c { padding:5px; background-color:#000000; }
.table-c p { color: #2D2D2D; font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif !important;overflow-wrap: break-word; }
.table-h { padding:5px; background-color:#FFFFFF; }
.table-h p { color: #000000; font-family:'Work Sans','Lucida Grande',Verdana,sans-serif !important;overflow-wrap: break-word; }
@media only screen and (max-width:667px) {
.aa, .w100pc { width: 100% !important; }
.bb img { width: 100% !important; height: auto !important; max-width: none !important; }
.cc { padding: 0px 8px !important; }
.ee { padding-top:10px !important;padding-bottom:10px !important; }
.ff ul, .ff ol { margin: 0px 0px 0px 10px !important;padding: 0px !important; }
.ff li { margin:10px 0px 0px 10px !important; }
.r {height:140px !important;}
.s p { font-size:13px !important;line-height:15px !important; }
.mob-hide {display:none !important;}
.mob-show {display: block !important; width: auto !important; overflow: visible !important; float: none !important; max-height: inherit !important; line-height: inherit !important;}
.mob-stack {width:100% !important;display:block !important;}
.mob-w-full {width:100% !important;}
.mob-block {display:block !important;}
.embed-img {padding:0px 0px 12px 0px !important;}
.socialShare {padding-top:15px !important;}
.rec { padding-left:15px!important;padding-right:15px!important; }
.bodyWrapper { padding:0px 4px 0px 4px !important; }
.social-mobile {float:left !important;margin-top:10px !important;}
}
@media screen and (max-width: 480px) {
u + .a .gg { width: 100% !important; width: 100vw !important; }
.tok-heart { padding-top:75% !important; }
.tok-play { padding-top: 250px !important; }
}
@media screen and (max-width: 320px) {
.tok-heart { padding-top:65% !important; }
}
.u { border: 1px solid #CACACA !important; border-radius: 2px !important; background-color: #ffffff !important; padding: 0px 13px 0px 13px !important; font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif !important;font-size: 12px !important; color: #767676 !important; }
.u a { text-decoration: none; display: block !important; color: #767676 !important; margin: 0px !important; }
.u span, .u img { color: #767676 !important;margin:0px !important; max-height:32px !important;background-color:#ffffff !important; }
</style><!--[if mso]><style type="text/css">
h1, h2, h3, h4, h5, h6 {font-family: Arial, sans-serif !important;}
body, table, td, p, a, span {font-family: Arial, sans-serif !important;}
sup { font-size: 100% !important;vertical-align: .5em !important;mso-text-raise: -1.5% !important;line-height: 0 !important; }
ul { margin-left:0px !important; margin-right:10px !important; margin-top:20px !important; margin-bottom:20px !important; }
ul li { margin-left: 0px !important; mso-special-format: decimal; }
ol { margin-left:0px !important; margin-right:10px !important; margin-top:20px !important; margin-bottom:20px !important; }
ol li { margin-left: 0px !important; mso-special-format: decimal; }
li.listItem { margin-left:15px !important; margin-top:0px !important; }
.paddingDesktop { padding: 10px 0 !important; }
.edm_outlooklist { margin-left: -20px !important; }
.embedImage { display:none !important; }
</style><![endif]--><!-- b4b9c1b7-f839-401e-9f0a-b66af93dffb3 --><style>
@font-face {
font-family: 'Work Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('https://fonts.gstatic.com/s/worksans/v19/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXBi8Jpo3ZKyHaQQ.woff2') format('woff2');
}
@font-face {
font-family: 'Work Sans';
font-style: italic;
font-weight: 400;
font-display: swap;
src: url('https://fonts.gstatic.com/s/worksans/v19/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU3ms5pIfYCSXCQNBf.woff2') format('woff2');
}
@font-face {
font-family: 'Work Sans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('https://fonts.gstatic.com/s/worksans/v19/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QBi8Jpo3ZKyHaQQ.woff2') format('woff2');
}
@font-face {
font-family: 'Work Sans';
font-style: italic;
font-weight: 700;
font-display: swap;
src: url('https://fonts.gstatic.com/s/worksans/v19/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUOWw5pIfYCSXCQNBf.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_fjbvMwCp50PDca1ZL7W0Q5nw.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 600;
font-display: swap;
src: url('https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2d5RipWFsevceSGM.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_fjbvMwCp504jAa1ZL7W0Q5nw.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 400;
font-display: swap;
src: url('https://fonts.gstatic.com/s/inter/v18/UcCM3FwrK3iLTcvneQg7Ca725JhhKnNqk4j1ebLhAm8SrXTc2dxRipWFsevceSGM.woff2') format('woff2');
}
</style></head><body class="a" style="margin:0px auto;padding:0px;word-wrap:normal;word-spacing:normal;background-color:#EAEAE4;"><div role="article" aria-roledescription="email" aria-label="email_name" lang="en" style="font-size:1rem"><div style="display:none;max-height:0px;overflow:hidden;"> AI-powered mobile development, Worklets 0.9, React Navigation improvements, and the latest React Native releases. Stay up to date with the tools, libraries, and engineering insights shaping modern...  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ </div><table role="none" width="100%" border="0" cellspacing="0" align="center" cellpadding="0" class="gg"><tr><td align="center" valign="top"><table role="none" width="670" border="0" cellspacing="0" cellpadding="0" class="aa" style="width:670px;table-layout:fixed;"><tr><td class="bodyWrapper" align="center" valign="top" style="padding:0px 0px 0px 0px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td align="center" valign="top" style="border-width:1px 1px 0px 1px;border-style: solid; border-color: #ECECEC;border-radius:11px 11px 0px 0px;background-color:#FFFFFF;" class="c"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr id="header"><td style="padding:11px 11px 0px 11px;"><div style="padding-top:14px;padding-right:0px;padding-bottom:14px;padding-left:0px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td class="f" align="right" valign="top"><p> 14 Aug | <a data-read-online-tooltip="true" href="https://link.mail.beehiiv.com/v2/c/29225154a9ef0954bc2f9f8f4e472d5c1fd8a3a487fe53a9a185f749177339e672067ed9e068af3f3a18ddf28aabe4ab34b4f2e7dd5cce3b97ce7c2ec00b92ad4dbaf76335d6438b82239e14c621b7b491ce4398cc109a952a3105614e8180f1c281e46f8d84ff00fd93012c3905efc0325631fd2fe9a8b16b207e5420152c3e4f8e17d6d18fac09c26725b0782699b7e0f276be824afdf699a63087cb92e496fe72d761fb14feba0bcd0900ff1f69aa/4f184984cc64f808">Read online</a></p></td></tr><tr><td class="dd" align="center" valign="top" style="padding:15px 0;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td align="center" valign="top"><h1 style="text-align:left;font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-weight:600;font-size:30px;color:#090909;padding:10px 0;line-height:36px;"> Aug 14 2026: Issue 18 </h1><p style="text-align:left;font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;font-weight:400;font-size:16px;color:#3E3E3E;padding:16px 0;line-height:19px;"> 👋 React Native 0.87 dropped this week, and it's the kind of release you actually need to read the notes for: Strict TypeScript API is now the default, SwiftPM support landed (experimental, but no more Ruby or CocoaPods), and Node 22 is the new floor. The ecosystem moved fast too, so you'll find fresh releases from Gesture Handler, Screens, Worklets, and more below. </p></td></tr></table></td></tr><tr><td style="line-height:0;"><div data-open-tracking="true"><img src="https://link.mail.beehiiv.com/v2/o/7e5ec22ec6cec0a39129f6fc9bd05d861c87f04e36ab0803cda02e849fbc7a9f838d1f908e0340a7558aef475751af166a803e278e7591cbc7191cd03a4e645da94c876104a7dd107dfac220471d4ed898f7ac656ff1c40e3955c7441217055146aac2cf8a6be95afca71b0ab5d83d3ef9fb0de5b27ca5222287cf07df9cffd38b821d951a63514b588ac558fb6e602aa01ae732fd87ac8faab5bb5ed468ef8558cacb4b1d090eff2549a577725bb3f47c4453a9d0387d9d79d7d89a2942507b09f2178a59039fdf83d931f963db1119282aca7cd02efbbce7733a31c5149d5fca0797bf331e58087d7864c5f3190a2bc74c025bdadb1f0f60f43bb210e0eec6adf10fbec14151455a36f903a7c87c03b89e781fe21b5bff8075c7913f96b5c9ede2aa44cc1bf4be1fe08a69cad73c2ea8eb418fd8c023d6799cabc601ba11f1084672591855df4a90cd9418b13a2e66439f34684f97c117dc8787a495cc161f8759de25dc817ced115457cfe3f818e6/3a82ea4e762f83c4.gif" alt="" width="1" height="1" style="display:block;border:0;outline:0;"></div></td></tr></table></div></td></tr><tr id="content-blocks"><td class="email-card-body" align="center" valign="top" style="padding-bottom:11px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td id="sponsor" class="dd" align="left" valign="top" style="color:#2A2A2A;font-weight:600;padding:0px 11px;text-align:left;"><h3 style="color:#2A2A2A;font-weight:600;mso-line-height-alt:125.0%;">🤝 <b>Sponsor</b></h3></td></tr><tr><td align="center" valign="top" style="padding-bottom:20px;padding-left:11px;padding-right:11px;padding-top:20px; " class="dd"><table role="none" border="0" cellspacing="0" cellpadding="0" style="margin:0 auto 0 auto;"><tr><td align="center" valign="top" style="width:648px;"><img src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80,width=1920,height=3840/uploads/asset/file/f77368e9-79a1-4b83-8356-c360f9739259/tester-army.avif?t=1786696182" alt="" height="auto" width="648" style="display:block;width:100%;" border="0"/></td></tr></table></td></tr><tr><td id="e-2-e-testing-in-react-native-witho" class="dd" align="left" valign="top" style="color:#2A2A2A;font-weight:600;padding:0px 11px;text-align:left;"><h4 style="color:#2A2A2A;font-weight:600;mso-line-height-alt:112.5%;"><span style="font-weight:400;"><b>E2E testing in React Native, without the pain</b></span></h4></td></tr><tr><td class="dd" align="left" style="padding:0px 11px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:170.0%;"><span style="color:inherit;font-family:inherit;font-size:inherit;font-weight:400;">Setting up an E2E stack, keeping tests green across RN upgrades, debugging flakes in CI. It adds up fast. TesterArmy takes a different approach: autonomous agents that test your app in plain English, with first-class integration for React </span><span style="color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;">Native and Expo</span><span style="color:inherit;font-family:inherit;font-size:inherit;font-weight:400;"> built by core contributors. You get the coverage without maintaining test code.</span></p></td></tr><tr><td class="dd" align="left" style="padding:0px 11px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:170.0%;"><span style="color:#1155cc;"><span style="text-decoration:underline;"><i><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/541c4830b26b57f3172db52d7a4b6e30ad6f0b1d86cb453347eb6eb1e9fcdcbf488d718a3af6c1d28501485333e79229286e84589c636e0d94b05a6a953cb99dc6b8e408712822e3ac863c1fad9f37f459b7ec4f86e05ff8147f4d276bf299059ad6f41dc52658d00fa436a6b3627640be9525b08bc8d511e7c3ac24df51ff728183a368d2035854797859e16e5c1931eadd16ce523f7fe532db1ec50ee5854f9e9993358d8022efb9a3439452573909/21092702a2333ce9" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: #000000;"><span style="color: #000000;">Start Testing →</span></a></b></i></span></span></p></td></tr><tr><td id="react-native-087-is-out" class="dd" align="left" valign="top" style="color:#2A2A2A;font-weight:600;padding:0px 11px;text-align:left;"><h3 style="color:#2A2A2A;font-weight:600;mso-line-height-alt:125.0%;"> 🎉 <b>React Native 0.87 is Out!</b></h3></td></tr><tr><td class="dd" align="left" style="padding:0px 11px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:170.0%;"> The Strict TypeScript API is now the default. Types are generated straight from RN's source (no more hand-maintained drift), the public API is scoped to root exports only, and deep imports into <code>Libraries/*</code> are now type errors. An opt-out exists, but only through 0.88, so start migrating. There's even a <code>/migrate-to-strict-api</code> skill for agent-driven upgrades. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 11px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:170.0%;"> Other highlights: </p></td></tr><tr><td style="padding-bottom:12px;padding-left:23px;padding-right:23px;padding-top:12px;" class="ee"><div style="margin-left:0px;" class="edm_outlooklist"><ul style="font-weight:400;list-style-type:disc;margin-bottom:12px !important;margin-top:12px !important;padding:0px 0px 0px 0px;"><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b>Metro 0.87</b>: 2x faster source maps, half the memory, stable TS/ESM config support </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b>Swift Package Manager (experimental)</b>: build iOS with just Xcode. No Ruby, no Bundler, no <code>pod install</code>. Not production-ready yet </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b>AGP 9 support</b>: with recommended opt-out flags for built-in Kotlin and the new DSL </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b>Raised minimums</b>: Node 22+, Kotlin 2.0+, compileSdk 37 (minCompileSdk 34) </p></li></ul></div></td></tr><tr><td class="dd" align="left" style="padding:0px 11px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:170.0%;"> Removals: <code>InteractionManager</code> (use <code>requestIdleCallback</code>), <code>Modal</code>'s <code>animated</code> prop, deprecated <code>StatusBar</code> props, and standalone react-devtools support. <code>ImageBackground</code> and <code>DrawerLayoutAndroid</code> are now deprecated. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 11px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:170.0%;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/79c5ddbc7ec6b8d1a081b04d630571e9a2c176a1fe1f404e4206bfd626e0490fe4887f7df9797d27053945cce949d2df0a4bae2a3f322004c194d00a037881aaa6e708cc7d58574104f705eb99291e6c9f39f4a036776adb5f28b05ba3102339fd48096d8e895a7bd3cb5c210baeb52453d2e31f07378680210c085ac2b130c30b7211519b61723284072b77ff2a26aae53dc36dcda5588091b83517a97de4134c2a3fcf8fae4c77407b624787037577/2f269142fce0c535" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: #110e26;"><span style="color: #110e26;">[Full release notes →]</span></a></b></p></td></tr><tr><td align="center" valign="top" style="font-size:0px;line-height:0px;padding:4px 0px 4px;" class="dd"><table class="j" role="none" width="75%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td> </td></tr></table></td></tr><tr><td id="reads" class="dd" align="left" valign="top" style="color:#2A2A2A;font-weight:600;padding:0px 11px;text-align:left;"><h3 style="color:#2A2A2A;font-weight:600;mso-line-height-alt:125.0%;">📦 Packages</h3></td></tr><tr><td style="padding-bottom:12px;padding-left:23px;padding-right:23px;padding-top:12px;" class="ee"><div style="margin-left:0px;" class="edm_outlooklist"><ul style="font-weight:400;list-style-type:disc;margin-bottom:12px !important;margin-top:12px !important;padding:0px 0px 0px 0px;"><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/9d3f7050a3a4883f53bc3573eddc409a44ccfcde081684897407a9fd5741ea734da80a71cd81b2a8afe3b60babeb0baaf4f5cc794d6e4948f8e7dc8dcfe906128376ca821325b44a3d76538dcf22d47d622eb1dd70bf67fd5fb25d92ed69ac0140264791182f058f8ee52209c2de368886bfb62820047ddcf5f4e3acc5325e2651db5a52a5a0e2ff22e96665a2557f67da24f075734f7a904d8b43c62d509958f86194d3039ea320411380b8cac76959/910003762dff7ba3" target="_blank" rel="noopener noreferrer nofollow"><span>Gesture Handler 3.2.0</span></a></b> adopts AGP 9, rebuilds <code>Pressable</code> on top of <code>Touchable</code>, and adds hover callbacks to <code>Touchable</code> on Android, iOS, and web. It also fixes a fatal <code>translationX</code> crash, resolves numerous touch delivery issues on macOS and iOS, and updates types for the Strict TS API. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/479837c61eba7da291165d46493db0d1cd835e83773f70f834f245a36630f0b3c840008b1f80fa347fa974fe72cf2a941bd901f4a714ebc24bf7c63a32055d9e2af14078caa193eeda127bcd0d530b22d1febf82464daa21faf5b2f8cb45f85286d550f176b5342ead0eb2f8b0a05890e5373ef100e0235541a5b088a67097deb2ca7aba03176ef8a3017e82c705e43b5365f7c348533bdf0023d02c1b5bfa2371e3f80e43fd9f5da5a2c92969853614/7ccbd37c37271694" target="_blank" rel="noopener noreferrer nofollow"><span>React Native Worklets 0.12</span></a></b> adds <code>WeakRef</code> support on Worklet Runtimes and brings Bundle Mode script loading on par with React Native, replacing in-memory copies with mmapped local bundles and streamed dev-server downloads. It also introduces an <code>enableLocking</code> option in <code>createWorkletRuntime</code> for advanced thread-safety scenarios, and fixes the UI loop not pausing when the app is backgrounded. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/e262770a8bfceb01fa39efc28739dbad24878955befeaf49c815746b1b84b39868514136cce973d12fc67f4e19cb7b311b1cf0beadd8133447c22e0503ce1cbead3ebc6fd03c264a4da98023ddd95ce7e5e462b8966566e97a4238e59c1796d5a80f370016d6cbd028dcba18bdf319cd60f16d8024e97c51816302e3c10823c4c860399a4b3eb0a4b5a1b4c99bbc2d27d8603bcd92ed5596587194e2d0525368a36823310ecc11e83f594d4b790a4b61/ef89655dd521d0c4" target="_blank" rel="noopener noreferrer nofollow"><span>VisionCamera 5.2.2</span></a></b><a class="link" href="https://link.mail.beehiiv.com/v2/c/aef1e16141109f80ae6238ad20c6f89fdd6821bf3f7c2bed938e03db6bcbac4ea8a4bd14e0286bcb0823f8dbc84ab7cf5c8d1bbecbc02397dfa8365bca32d444dfdf5c3be5af372904ed064a21b3a79ee71ea2c353eda9800592ef9fd8f903de526e1abf4ec4a8c90076c8d84965a6099279f77047f5bb098cad088ca88c90f687e5ef11ce08ec0bcca025de633b0c0f9ca55dd031d753697c6f12f36b38031224ec8f53ce920f85ac59131528b6fcd7/ec3598be6693d388" target="_blank" rel="noopener noreferrer nofollow"><span> </span></a>is a patch release that caps the <code>AHardwareBuffer</code> import cache at 12 images to prevent memory growth on Android, fixes <code><Camera /></code> view alignment when positioned with <code>top</code>/<code>left</code>, and now emits configure/start errors through <code>onError</code> so they can be handled properly instead of failing silently. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/ecbfe2ad044459932dde43105b7c70182d4bc3d15c17f177626b980ed5c695ae511f1588d6337b0769af23b76861ede48598b4c2f698d53083276a894acff279039be6dacc0dcce8eeaac73e6073b4e89bc2226b3a1b632bf7cf1db59109ac80a813f25725ad3a6feac717bc20dbbe5bc2d40fd58729c6e5d2d48965f63e2c4d2971b77ddbe6774512b6a7433b75ec3f3b4d4603e7697ae96d69246b809f5d25cde46667e7b1c0814e64b28508bcd700/e7a180ba93cfad03" target="_blank" rel="noopener noreferrer nofollow"><span>react-native-skia-lab</span></a></b><a class="link" href="https://link.mail.beehiiv.com/v2/c/091a9216c861def3f2095567207e3bceaa53fb23379e667f779773668fac6c2bd143546acf999509487b6a0e65da8dd5fe5f1ab030e8c45af143483c1f9f2b0ea655f2eeddd3a6d22cc40eab5cbeefa0a418fee8b51a16a6e975368447ee58526f5066c4ff89b56bb857a4a99a3afc117aabab34118caa2b6018bc3affd882a43bc17578228fa3d1a9ad5fdf99c58bbc5b42813b54aadce8f7dc805dbb91f2be7e83297ee7454113fcd6ba0f2fb14e49/881c10f24601b109" target="_blank" rel="noopener noreferrer nofollow"><span> </span></a>is a showcase of advanced <b>React Native Skia</b> techniques, featuring interactive demos for shaders, gestures, physics, painting, pixel manipulation, and polygon rendering. While it isn't a library release, it serves as a valuable reference for implementing high-performance graphics, animations, and creative UI experiences in React Native. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/eaba473e026c8f13817986194c6853180b5f240ef37885e94012315a9839a49a6bc86d8d0879437edb8039ae520f8df5451ea65d91989f7ffa457b4c881e8b95804d1ffe587a5dfaa3b3c3b0782d718724a59a37292155de33a3dcb9e3051010f7f8475187dd6344d5e6601c4f73e2e1c350dbd009fd9dba64a33be616fe7c29392331461844429ead2af73e9ff74ef15f1a2149147176f6adf43964fb2e67a9353a10153deebe227e1b4f222e750421/f7d8f4129d7d95f3" target="_blank" rel="noopener noreferrer nofollow"><span>React Native Screens 4.27.0</span></a></b> adds support for React Native 0.87, fixing an iOS runtime crash along the way. It also introduces an experimental <code>ScrollToTopGuard</code> component, migrates the <code>Split</code> component from Swift to Objective-C, and fixes several bugs including an Android crash when a header updates during screen removal and tab bar label truncation on iOS 26. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/83851d0f9605be50c42f54690e744bccc8afca11466001a94405f35175c87b734cbbe46b04b9076dd08f7c2da4729a61786438fc48e6c8c7a1613fb10a99dae13414dd3ee877bc5f7c0460f91c03e2f1718f9e657337aa91a7049993dac3d706207d44fa4ace64185fdf83106e5c838d762fe363ddb6e0c9e463e8e6795bda1d1d21bd14991be3cebbc0d5a22e2cbd733dbf1e815a4c4bb47d63c0e37311d80a5226c9bbbd39f43160e8f32a6aa03ba2/a8ada849da0c3fff" target="_blank" rel="noopener noreferrer nofollow"><span><b>React Native Skia 2.11.0</b></span></a> upgrades the underlying Skia engine to milestone 152 and adds a new <code>select</code> capability that lets you drive multiple animated props from a single shared value, making complex Reanimated-driven graphics more efficient and less boilerplate-heavy. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/6015185133be15f43141d2b16e720f22dfe3869927e2e410ce8ae26b5866e298e8fb07d3e08842f6b27c032ff64757841d3c151bcf0ae16b3efe155890680af7820750bba59979926d7c66055931c7b2411e627fdda7529ec63b1f100484ef5bebdef38adf6428c3624048ea0a9373255bef87b980c29e43ecbf7f3daaa353aeba05e7bb15c439a2411553a6c03240a02bee7ea382a0be3703dc1558dfeb42874bc33dde8b69dc90adc8ba8d24cae453/a8bdc98b9667dba9" target="_blank" rel="noopener noreferrer nofollow"><span><b>Re.Pack 5.3.0</b></span></a> adds a <code>maxInlineSize</code> option for size-based asset inlining, lets you customize the native HTTP client used for remote script downloads (SSL pinning, interceptors, custom headers), and simplifies code signing setup by automatically embedding the public key into <code>Info.plist</code> and <code>strings.xml</code> via the new <code>publicKeyPath</code> option. It also fixes Android dev-server URLs on physical devices and resolves several security advisories in dependencies. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/745c479413e6cce643d52640ff9cf822b8aa5342bcb339a3b4724dd115dbecaf7f37a55048ff9bd1ffa6ace66d7635791449b294101af45653530c11a08c258042cb04abe3b92abc5589b0766f5bb92c7466d29dca7b2411ec2d6b76580789db5c81a3bb79bac24fba1b272000b7b766773456db739ea535864c5897471618d99c626e1d80beb5b5241d614bb0fb1111d385ca9fb8ed46286f7cce21b92305166f6e3e6a19b1992343df043ab62991c9/f507557d27d08f2e" target="_blank" rel="noopener noreferrer nofollow"><span><b>Safe Area Context 5.9.0</b></span></a> adopts AGP 9 and focuses on web fixes: nested <code>SafeAreaProvider</code> now reports its own frame and insets, insets and frame update on window resize, and a <code>NotFoundError</code> when the measurement element is already detached is resolved. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/a94fb1a8a5ac2cab912e8d81b38b803dd27005310dd3f94cc7097dec9ee747dc1d1ceec77519a112b1245d03cdaabe4d324938dc56ad6ee68883d065db8c7740b759b87d55963edd54309375be16024029af3942c5f85e62b5e27263b7edd1520ca9d74f522a36db7dbaf9c7614bc85ac535589ae50c445689f67f06e35fcbc1029c9c0cd31d02c484b4b6f1ad19e905bd8c3a3beb82bdecc7c52c62175c2f4efc3049b83912589413a751405b718bda/328aa9323c04baac" target="_blank" rel="noopener noreferrer nofollow"><span><b>React Navigation Core 7.21.12</b></span></a><a class="link" href="https://link.mail.beehiiv.com/v2/c/d10016a0e0b33d38d8ff4bba9496e1cd3252d4fd01753bee5fd4d2d744f7b5f35f4442a938a8636fb5b5694d3a936857b8b8f25e731c34ea7967c2a27784cf309d21af0aebab5397da68ba6cf5e414921e2a074a68c610d4511d49759c7acc4c8cf65a73cec7d374845c29c0ed5a47a3a9d3791626402d353691f4cab91e0e516f994d713e96258e73e554907c16d33aff5d4317f474c4bc3fb766b544e5b10c09c567acc402f7522ca00f4412472b2d/be5ec76aaaf60de3" target="_blank" rel="noopener noreferrer nofollow"><span> </span></a>is a small patch that fixes <code>beforeRemove</code> not being emitted for nested routes removed by a <code>reset</code> action, so cleanup logic and navigation guards now fire correctly in that scenario. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/cb43bb64b6b246508cf9143c0c1f40b8c0c75629c41a42aca22bc6add4e59fd6584e354a2d7ec38431b45d8cb707ddb1897d31b60b9a306fc26578ca589d997e20e481b30824dca81b24b08eadf966dfd8e56f290df4292b09c842280af194f58e957bf3c874e83db47e4658221b287a9ecc0d986f56219a2b876823c28902c58fcd11888e4cab250c7a12ff1cd17314c9cc4de8a23c1636de75860e99681f7ca849338e6a846f9eef23a7832dc38d2c/6e60ae2c62b5c470" target="_blank" rel="noopener noreferrer nofollow"><span><b>Lottie React Native 7.4.0</b></span></a> raises the minimum requirement to React Native 0.84 and exposes a new Android opacity layer option, giving more control over how semi-transparent layers render. The release also includes CI and tooling updates. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/2b7038aad16f54537a6e19450a322984da7558505c3fd26927d16e250d157665a9c0ea480806f7662de9d39bacdc2d5425a3c0b4e0d3e6b3d183dcd14df8e3b3d277eab61eb2c69f8c8ff5b0d737f5af79dfb586fdf379740152c7169b1a2c7d25091db55cf1cb01dcae293a993f7f729ca87a146907b20562e337f5048a2812d067e92ca987577a719142d87edc6b9b5c4c7345a7aa2eceec87e81154a4283b38e6a1363bac21940a759892c806f3fd/b427e96fad1ca82c" target="_blank" rel="noopener noreferrer nofollow"><span>Nitro 0.36.5</span></a></b> fixes a cyclic JVM reference on <code>CxxPart</code> that caused a memory leak on Android, making it a recommended upgrade for anyone building or shipping Nitro Modules. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/b2310bb0ff873725e405d852d327ba32a806563c4b00e569089b9971a6a0f424c3701778eae74b5adb94cb2c0b1b0160f5e82f877c16853a4f8a53e35e1d048fcd4ddcb9906b807b2de604246a2b06573ee6f6ce68483d7ebb06922acbc253a7ee0422377930b0d7293b695760c968bc9e5a841ccd10c6e2317b059bd1fa9e848ce9f49654742f82e8f8d9d7f818eb558f0fb6a020cd8fb1dd4619e53a5d4f70012daa2cbea8904eaf1149579044c1d2/bf1474e62d2ebc9b" target="_blank" rel="noopener noreferrer nofollow"><span>Legend List 3.3.5</span></a></b> fixes a bug where changing <code>dataKey</code> left the new dataset invisible, keeps <code>maintainScrollAtEnd</code> properly pinned while newly inserted rows are measured, and makes programmatic scrolls more reliable on web, where they could throw or silently stop working after a canceled request. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/471e89ee2ef94488ae9e0c6853e93bba85b86765f6e60c243a235776c9cc91592e69becccd65bfb257fed21d1ab3272aaa1d807a45bb28724c4ffa357b166a685c51cc7485cb2498ad35bb25285d731137556e6551547df04d3b2752941b2c47e4a74f0042716a20503af1ed4c3ffbd919b6e75e321c7cb8520bd616daa51e21c7488c7a6ef7893baa667f21e6ac3be2d024b7a8d9be556dd9eed01ea67de77ed7b3e9ceaab29d043b51ce0e523c6faf/f61f183287915097" target="_blank" rel="noopener noreferrer nofollow"><span><b>Keyboard Controller 1.22.3</b></span></a> is a stability release that fixes several crashes: <code>KeyboardChatScrollView</code> on unmount, an <code>IllegalStateException</code> on Android, and an unpaired UTF-16 surrogate crash in <code>onTextChangedHandler</code> on iOS. It also adds Strict TypeScript API compatibility, a <code>rounded</code> prop for <code>KeyboardEffects</code>, and fixes overscroll during interactive keyboard dismissal. </p></li></ul></div></td></tr><tr><td align="center" valign="top" style="font-size:0px;line-height:0px;padding:4px 0px 4px;" class="dd"><table class="j" role="none" width="75%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td> </td></tr></table></td></tr><tr><td id="reads" class="dd" align="left" valign="top" style="color:#2A2A2A;font-weight:600;padding:0px 11px;text-align:left;"><h3 style="color:#2A2A2A;font-weight:600;mso-line-height-alt:125.0%;">📖 Reads</h3></td></tr><tr><td style="padding-bottom:12px;padding-left:23px;padding-right:23px;padding-top:12px;" class="ee"><div style="margin-left:0px;" class="edm_outlooklist"><ul style="font-weight:400;list-style-type:disc;margin-bottom:12px !important;margin-top:12px !important;padding:0px 0px 0px 0px;"><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/6187886fb6baedcff1f6b6c6280ed5e7c0892a2acdebaa923abe3b9daf80586fd9048f25ce7e66409591bac9a56e01a7078ebd5774f5d9a5074a129ff1a4baf4fb04a7dc1d2f6da2f8cb75ac76bc1f6f43d1fd8d003dd3299fc36863e08615df566d75bff74d88b3d44d6979c56d0ded033b606e8293b3a7d133c9c873552782eeae085550a68bdb3ecd757fa0b5c7a660f2b43231e32250a6b19a130c14501fc270d021c1fad685f06a387693e78666/d522fc73dd15deec" target="_blank" rel="noopener noreferrer nofollow"><span>Building a ChatGPT-style AI chat app in React Native.</span></a></b> Margelo's Dave Mkpa-Eke shows that a native-feeling chat UI is fully achievable in React Native: a Liquid Glass composer via <code>@callstack/liquid-glass</code>, streaming over native WebSockets with <code>react-native-nitro-websockets</code> (including socket prewarming before the JS bundle loads), natively-rendered markdown, and Pinecone-backed RAG via function calling. The performance numbers back it up: 57-60fps on both threads while scrolling, ~0.6s cold launch on an iPhone 16. Full source is open, and the article doubles as a tour of the modern RN library ecosystem. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/710a28e4aa77800378ac6e7aa59ef41560d5328ea57a5d900861f0b53e6d77b2552029e33c3825757b66a52cbb2fe43d7e161e3934b0592867081112eddf6a2a0fc31ed9790fcf5736c7a63e9c68daad19591b7252d249e4699631d5f67fd73318f340f38c16ebc7b31098600ccdd4da3f7352e4ec3c6a91ad6fb15fdb3930322e01b6afb6ab31c39813ffff562bd4b40d93110a471f8168404d4960a6e4a3646973d4e5fa58ba02890c250f0312899d/ddffc8e4c125d171" target="_blank" rel="noopener noreferrer nofollow"><span>Convex is now a one-command backend for Expo apps.</span></a></b> Running <code>eas integrations:convex:connect</code> provisions a Convex project, installs the package, writes your env vars, and configures EAS environments across production, preview, and development. No separate signup, no dashboards, no copy-pasted tokens. You get a reactive, fully typed backend where <code>useQuery</code> results update automatically when data changes, making it a solid fit for chat, live scores, or anything realtime. Expo calls the backend gap "the single biggest missing piece in the Expo experience," and this closes it. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/b26187efd2eec36e1d9be270702848a85ad0095a8c629793e28bf6daeeeda10ddd92852dbdaf414f8abc1a98f54ebfe6275c89e76137dd4ab1328b962d4f5cc12f78f59b7483dab71fca747f8f9a9c4af8a75740679f4563af7d1acbe2e704a713ad1d2275bec747cdfdebb3ad1f1d6bd7969d1445c52041f2b1c6c96bd30dccdec069bb787d53b8fbb90fe46ad652c04ce095c3a5ec53f4592ce54c1efb1871097fe77b046ef90c51fd75a8dbf86be9/52a2173c4eb3c417" target="_blank" rel="noopener noreferrer nofollow"><span>How Worklets Bundle Mode accidentally fixed the Hermes V1 memory regression.</span></a></b><a class="link" href="https://link.mail.beehiiv.com/v2/c/033738a63140882c789c556a79e923fcd65c4cbef9e684280b5e85fd50d89dba25c639c221960ea201d98794698633bd5c9dc3d289996ba5cb93f07073015261fa3ea27f8b19a08664757cc652a54cfdd9685abab6ef44877895376870f39e1a5121b9bcbcecae74ca52eb25314f1d27597bcd8b1cda45e478ed66bbeedc2c1772788cde880a3908fcd97e182ea58ee7f21969d726ee2ffec49810e4d42e79d9d43b65f1a1566ca93b0262026749d85c/6606f1ec00259a26" target="_blank" rel="noopener noreferrer nofollow"><span> </span></a>Software Mansion traced the reported memory spikes in Reanimated apps on Hermes V1 to the engine itself: it attached 512 KB of debug metadata to every evaluated worklet, which meant at least 50 MB at app startup and potentially far more (Expensify's bundle holds over 1,000 unique worklets). The Hermes fix ships with React Native 0.87, but Bundle Mode avoids the problem entirely by exposing the whole bytecode bundle via mmap instead of evaluating code strings, and Software Mansion recommends enabling it regardless. Pinning Hermes to 0.15 or the experimental bytecode option for Legacy Eval Mode also work. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/c86bde9a5b430453d3057e372a9f750ebb5fe3136bd20f9a34f6505147c2e1ba368ac673ffcf6663db093b30f33735b720da1e17568744e1eb349d0fa6d4efaca992fb9f36575d4163c6067728d2b002d31302ec065f4527db61141837170eb0092afaa7d7ac5c05aa6c79cec2d30112ab7cc79025aa228f77adfd5add63a59bae2a89ff529ad6042e940537b23a94e7e497885d0c078b035ea0a1dccd1de92a21b38976d1f4f2d59785178bbe09aa1e/6ba2606549df53f9" target="_blank" rel="noopener noreferrer nofollow"><span><b>How Shopify raised mobile E2E test stability to 98%.</b></span></a> Shopify's E2E suite had gotten so flaky (50% stability) it was pulled from PR checks entirely. The fix was rebuilding the framework, not the tests: a strict builder-style API where every step must carry an assertion, and computer vision (PaddleOCR + OpenCV) that finds elements the way a user does instead of crawling the view hierarchy for Test IDs. Escape hatches are prefixed <code>UNSAFE_</code> to discourage use, every run produces an annotated failure video, and new tests must prove stability across multiple runs before entering blocking CI. Result: 98% stability, and a test grammar simple enough that AI agents write correct tests on the first try. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/eb88965ec75ba2161abb9a596b6feadc3bc4e2bb3b52f027c89b0c68a8349d4956ad59668a10eff70e54e484c10239b4e07dae56203986cd2d19192e0a801b258e3e32af1d82c29b3fcc045dbf0f8555699a6634a090182e75bc0fc1f867f72bd58fd196672df868bdf750cb7aba8329475e896c52632c6c392345116b1874f62ba2fc8364db5abdd6a67d6573ba209fb077c8b2a7fd2bcc319fe12b6a22c2db385c8aded405de3db19aaa9bac64f9b4/32ad4a2a5cc1a9dc" target="_blank" rel="noopener noreferrer nofollow"><span>Fable 5 vs GPT-5.6 Sol: $2,000 and 2 billion tokens to one-shot three Expo apps.</span></a></b> Rami Maalouf had three AI models each build a calorie tracker, a ChatGPT clone, and a full SwiftUI-to-Expo rewrite (including live activities) without touching the code himself. Fable 5 won on every metric that matters: fewest messages, fewest lines, fastest builds, and best code health scores, though at up to $163/hour it's by far the most expensive. His split: Fable 5 for bigger work like full PRs and app building, GPT-5.6 for well-defined problems and automation, where it grinds relentlessly (including one 13.5-hour validation loop). The SwiftUI rewrite is the standout: a pixel-faithful port with native sliders, bottom sheets, and live activities, one-shot. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/7e689a7bfc15b1e3a45d0936251b142d4685b6d24ea7d706316c6ad6c0f38a0c471dfe7e196a5104628c9df1be218aa6bf0c615b672545c2e6e631ca6920fcb1836f3d7215be37914e8b45f8424645703ed0e217e58138d9f9a963ce504d0569c32ef70e8a3771e6ca45c7e3af062f3cc58baf86a5ed0f38d90a34d1f0f7956d82149fd964007d95b623fd45cd932ca37da55c7539f3cd19596e133bf0b2107898f7c5d64e59b28293b808a4663bdca3/51cc9038c99f7396" target="_blank" rel="noopener noreferrer nofollow"><span><b>Fitting RAG in your pocket.</b></span></a> Margelo built a complete Retrieval-Augmented Generation pipeline that runs entirely on-device: import a WhatsApp chat, ask questions in plain language, and get answers from the actual messages, all on a $100 Android phone in airplane mode. The stack combines a 469 MB Qwen2.5-0.5B for generation, MiniLM embeddings, and vector search via <code>nitro-sqlite</code> with sqlite-vec compiled in, so KNN runs inside the SQLite file your app already ships. The same machinery then powers an offline photo gallery searchable by text, tap, or camera using CLIP. Full repo included. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/113b03529c5850c0b80be5be907cde97b0628e7d8db6b2670907a33186af503e8e775ae800cbf2fa099e3adc2a3d87bee72b99c6ab5f608e95589292a6913f3ba2d2af59d00883026a5444bded36181ba2660e215cadd1e122cd548ff1c9787d97f64db75c1a1a8fba88c9b8228579526841b7fb0c566cd489fba53b21e5eb8718af4dd035985fdc1e0257d25a0c524ae23c2370c00d9698f4eac1afd811373bbe328deb1f4d74fa6ca7c94e31222545/7e4c798c47db6c3f" target="_blank" rel="noopener noreferrer nofollow"><span>3 minutes with an agent, 9 seconds on replay.</span></a></b><a class="link" href="https://link.mail.beehiiv.com/v2/c/db63ffd8167443cdc88a554743c895c4094916901fb92a82cde8ec00cd483da4d16486c3b881b06aa063b6dca7e0471d68c973eafbad687cd110cad88e6832dcdc2e7ed8e44662a55f31e4c5e999cb5c4380dd36c13f696409ccf1463970f072e3072d92c3f363ebf34f13a422c5349f175bafe9db8a4240cc88a8ff357e097c48fcca6162fed8c95ba2a09410591bbdd2d27db23abc09c0b9364769306a151db84ac0be975e1cc6eecbc16f79590206/23537078a3e6b6f8" target="_blank" rel="noopener noreferrer nofollow"><span> </span></a>Callstack dug into where AI agent time goes when driving mobile devices with agent-device, their CLI that gives agents eyes and hands on iOS and Android. A routine 9-action QA task took an agent 3m 18s, but replaying the saved script took 8.8 seconds with zero model calls, since most agent time is model inference, not device execution. The v0.20 release adds <code>--settle</code> (cutting Sonnet-class token usage by 63%), replayable scripts with identity checks that catch UI changes, and Maestro YAML compatibility. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/087b3e5f251c9035e378f21bbd5ac4b6cc4c582cad0b4c7eab792add653a0a14ea1bfd825370376e5370a576772094bc18ff951a20f6eb9d1c633231e18762347cb13e175bd25c198e93d55b272a2e3e86c6735067203f3bf87cb3f5b393d794045b094ac6ab2cf7385f93f04a253f632dfc92a4c15fba3d977db401e463d155a4a5ef27f2fe328bcd782821d7cda0f69364fd04a77838a33fa6c1d0d9457a96aeac57064c34bf92f32a96acf9144bab/eab02419d233ce43" target="_blank" rel="noopener noreferrer nofollow"><span>Automating mobile QA with cloud agents.</span></a></b> Callstack makes the case that in agent-written codebases, clean diffs and green CI aren't enough, since regressions live in the space between code and runtime: permission prompts, keyboard overlaps, deep links landing wrong. Their answer is a bounded "behavior review": a QA agent that verifies only the flow a PR is likely to affect, collects screenshots and logs as evidence, and posts the result back to GitHub. The stack combines Vercel Eve as the agent runtime, agent-device for device control, and CI workflows that boot simulators and handle real-device access via <code>agent-device proxy</code>. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/24258869586989040a727be43be1013374cd86e9f6f06341ec1df489f6e3693bef63c7b2b37ed3115dbd2192e996d22b1012ec6bbd25c7a4ca3965fa3ce6abbcdfecc922b98ef2eca95601bc542a5457743fcf75f7c597f5813222012c42c4bed289041e902ae817495710e1095eda126b951eb62a797f0de6afe70c0d851d0d2b4ace6c889539f9ca92a7c45db141e2a6247bf4f8e4b1ef7f1abcfc5876c3a8fbc8b066cfbcb5aecf720f75858ecec9/d4e86e6b1c931aef" target="_blank" rel="noopener noreferrer nofollow"><span>Scanning barcodes in React Native: the complete guide.</span></a></b> Marc Rousavy (creator of VisionCamera) published a definitive breakdown of every scanning option in 2026. The short version: <code>react-native-data-scanner</code> for one-call scanning with the platform-native UI (no camera permission needed on Android), VisionCamera + barcode plugin for custom in-app scanning, and <code>expo-camera</code> for Expo Go. It also covers platform quirks, a full format-support matrix, and a blunt take on when commercial SDKs are actually worth paying for. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/8d8c4eb14d69ad49069c078bce95ad22771714b975f0eeb4816971d5f3465b0aff2005939372b88034ce679f7401017161878741fb3cba3002d431f505a23579499a3bd1de95335d942710d8146303155b4708fa71bc26ad221b77a9e46cc042ae1aad181df77bbbe3853298efaff4eb6b6196af3bf34d31f84d2be6d840a227261f17e5160ff00202a970211eaa438ca83fccc86294a6b97e9911019508bba87f4feda05c006d7dd39b144ce660eb03/2270d20f01a648f1" target="_blank" rel="noopener noreferrer nofollow"><span>Detour: deferred deep linking done right in Expo Router.</span></a></b> Software Mansion's Detour solves the Installation Gap, where deep link context vanishes when a new user passes through the App Store or Play Store. Unlike attribution SDKs that hand you a raw URL in a detached callback, Detour hooks into Expo Router's <code>+native-intent.tsx</code> to resolve the original link before the first screen renders, and its <code>DetourProvider</code> holds the intent in memory until the user clears your auth gate. Matching is deterministic on Android via the Install Referrer API and probabilistic on iOS. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/98ba8310f9582fecc05532532d348678c61b30c9da492742529a37d41d94375aa5eed5298c1c16a197b3e648030ce2f5aa704e04f1cbd3ad8bf9b5bc4a80884631753ed0e05315447ad89f57752bce98c9355e871a29821484005b2776f001046cf0d4ee2084bbb301f219783dc87510f6bd10d362f08f39b9aff07cdfd2c8962f7ca29f019898992283f9df76f171a0f2b8d5fe9e0eeab38d48f00c4aaa85c019f98ee91b499e1231745048194d13a5/13dd75e57f3a00b3" target="_blank" rel="noopener noreferrer nofollow"><span>Metrognome: an AI agent for measured React Native performance fixes.</span></a></b><a class="link" href="https://link.mail.beehiiv.com/v2/c/82e50d313e370a4997bd08457abdce710723b466da0b23d9a919068fc35ed15d34d897b4609b1ea179c5b58342d945926b6f2d25f6fbf76470f11356a7f68fa8a8725ca8ce7f6f485f2e5a994163e01cdfa64bc564d8bf32bdbc280b743cdfaa6ec2a6355073f80ab65d683bbc8da833ef871d11daa0b42d1d98a08bca358e762fe2f6877341c9bf3a2e69272540d6bb9276a6d3057d5c9d243c2612314bf9f40c7f4a042dc2b0ea629a8cb0efac6e86/bdec62c9766f5a82" target="_blank" rel="noopener noreferrer nofollow"><span> </span></a>Uphold introduces an open-source Claude Code plugin that runs an autonomous loop: propose a fix, measure it N times on a live device, keep it only if the gain beats measurement noise, and commit with evidence attached. A 5 ms "win" inside 30 ms of wobble gets reverted, not shipped. Built on Callstack's tooling (agent-device, Metro MCP, RN Best Practices), it also ships GitHub Actions templates for scheduled runs that open PRs only when fixes clear the bar. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/db5e1292c6bf6dfdf3b7e8e368db6a44588d290627290c3b23f9b3fa6824c8ac3542f8312b9612d7c77502cf13d8fcd7509c7a5c817831f967a1e05215e067dfec35842d4b94274d15a12c1629300acbc8dcb68f6e6f335b60ef1f1ca62e0ae9160eac907cccc76f41f7b91ff642bd44177d8bd9ec50ca173245a1938ea0025ddbadc940bb91beb664444027fd794e35bb2c36532349e59dfc248c24f06ad285ce29f8630bb28c110a1aee9d677d1805/034967f3953670c9" target="_blank" rel="noopener noreferrer nofollow"><span>A step-by-step guide to super app development with Re.Pack 5.</span></a></b> Callstack walks through building the smallest working super-app setup with Module Federation: a HostApp that owns the native shell, and a MiniApp that exposes its root component as a federated module loaded at runtime via <code>React.lazy(() => import('miniApp/App'))</code>. The guide covers the full config for both sides, shared singletons for React and React Native, loading and error states, plus the production caveats: native code must ship in the host binary, and dynamic JS delivery has to respect store policies. </p></li></ul></div></td></tr><tr><td id="new-reads" class="dd" align="left" valign="top" style="color:#2A2A2A;font-weight:600;padding:0px 11px;text-align:left;"><h3 style="color:#2A2A2A;font-weight:600;mso-line-height-alt:125.0%;"> 🎥 Videos</h3></td></tr><tr><td style="padding-bottom:12px;padding-left:23px;padding-right:23px;padding-top:12px;" class="ee"><div style="margin-left:0px;" class="edm_outlooklist"><ul style="font-weight:400;list-style-type:disc;margin-bottom:12px !important;margin-top:12px !important;padding:0px 0px 0px 0px;"><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/1e288ef78c8bf36fc5ab75c2d1d016492bab2f8acbaed6f63fe6001d07d09180ded1a0cb6cfc1521023fe8427347b3e3549d69e7031fddf597cf3efd5f2597f02ff9b074913911f451b1d690bfddb826a49e86456a23a958994c3cc362a2a63c7b8def733e768cdc69a857a6276a0663f15303dac94f687894a4eba42e8b4402ee8e798a0bb654a15f974cef601f8d170e674e8f06dfbc18523de8a2eb878b50fc184fa90afcf5e561c7b83a0f9972e8/28849358d40ceb40" target="_blank" rel="noopener noreferrer nofollow"><span>Simon Grimm - React Native Tools That Actually Save Me Time </span></a></b></p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/1eadcd72d85a852109e5d7596402322abfed3a849759f9d3a0d586e9efde935cf0e97b37b534c02231354e18495a388c11ee83e2737eab46c41e5bd040c65d71204071751c243008aaf221586df7f8ff8ed79d67fdceb5bda208153a77c531283674527372037107d233566fa2c644b8275725427f6097c427e3e2a59b0abcb6df37c7e842924c9c226f52269aeade4406a879d5ecacedd21d39d7c3531e0d357d4aa6d3031dadc9432a017c51b81eeb/fd0b8769daf46042" target="_blank" rel="noopener noreferrer nofollow"><span>Beto - Expo UI Crash Course | Truly Native UI in React Native</span></a></b></p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/522faf770ed87deafad927d3e1c9501ef1c31191115cb28e186933bfd59ca4c886119485bd6295080af417ef4e2581d65d1c7826b4ef5bea6dedf9ef8fa810f726989b528b6e431d37512938bfb5f358b2a5605be99f336f805688d0ad55e5d50089d6c3b1c548ae952927c20dff919820d26b59800fb6731220f9f5b3761eade9d1c1097fa6eb54f212ab75764edaf161500228ae950da0f48fde2982e392c945794f4b7fc3534fbdef59880ec60e05/e310fab067d1fbd8" target="_blank" rel="noopener noreferrer nofollow"><span><b>Beto - React Native Over-the-Air Updates with Bitrise CodePush | Full Tutorial</b></span></a></p></li></ul></div></td></tr><tr><td align="center" valign="top" style="font-size:0px;line-height:0px;padding:4px 0px 4px;" class="dd"><table class="j" role="none" width="75%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td> </td></tr></table></td></tr><tr><td id="open-roles" class="dd" align="left" valign="top" style="color:#2A2A2A;font-weight:600;padding:0px 11px;text-align:left;"><h3 style="color:#2A2A2A;font-weight:600;mso-line-height-alt:125.0%;">💼 Open Roles</h3></td></tr><tr><td style="padding-bottom:12px;padding-left:23px;padding-right:23px;padding-top:12px;" class="ee"><div style="margin-left:0px;" class="edm_outlooklist"><ul style="font-weight:400;list-style-type:disc;margin-bottom:12px !important;margin-top:12px !important;padding:0px 0px 0px 0px;"><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/6decca3dab89be414b7742513c56bf567e6a04dc6ada65f3c895a37b8875c8053f08061b3d1ed236f947c79a5655bfc4b3f900bccf50e48cf29cb52bb128238324774fd8eca37967a111f01dc131ce8d093f73ea45ae76b84771df1805fa705b1c9e62ee5dbdc9cac362521dd3407e2545dc97f098c6cb9e27c6b58085cce776837f123b8ceeaaaeca97a6a2ead56fd038c6b4d85dcf487375932ca0721649b8ac2e4142fcdd8f855bddf772d782b822/6ef2793905ec7fd2" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Senior React Native Developer at Ruby Labs</span></a></b></span> (Europe, Remote) Build consumer products across health, education, and entertainment at a leading tech company. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/76d45a82b5401b74d63aafcdc82d0c435144b94937a20aede4f4caf55ec7b3d5932cf862d63952a61a7758f3ce40d5fab577be9817d49e279c0596c47f5282f02d663376758644bf4184aaabb4ace74bdc07fd3112db250201e563fcee7809b5b6ad1ed4506e5af66458c329766fb88357e7b06c8c35b8a795f53a2390467ef025204ab981073f3d56e998a6258d15819a577ccbb0d8de022cfdfcb4ba67b310645e6891104d30e8cdc12f4ecec996fe/6c7c11595ecef31b" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Mobile Software Engineer, Lending at Chime</span></a></b></span> (US, Remote) Build user-friendly banking and lending experiences at the fintech serving millions. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/74ac9e95c6a23651a2d38f0898d8c41a87c9c3cbda497ffe975b8f98d7195cee98e91cc2ade248b1e76a6c171420cbd54953131005dd3279255152e539da6dd2c3d6525f54f6540c3ef889fd76c8538d51299f0535aad871f9849aaf749743f43ae130cbc6fc8eb366d535c8e882188cc8f09f19b4f8e01c46711346f06a039cf4458c1c04abe397c1239ccc1e5f2dfaf237744d0b6e45dacb949fdd65f8ddc69cf1113b6bc66bdf3b8f3d6cad34d92a/b1ef1782ca0c04cc" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Senior Software Engineer, Mobile (Repayment UX) at Affirm</span></a></b></span> (Poland, Remote) Join a fully European Repayment UX team building honest, fee-free credit products. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/4865c57650eb91ba27003c70378aa724b4f7c8b596477b004a020da8e71588fe654c31cb6dd3bcd579b539324a284c8fe5c7d4e44375125fe566c1025f296ce8f371c75cb5c5c1049708c0affad51f17af118df5c6a0c793b5e21bbfbe3defe891c98cef316916f27574691092d4c328f2bbcc3cfcfeb19f07a85daf71a89e543442a41b1a7c2b95e0542801d10740a06ca450456539f5a9d0e92b2ab0aec1623f666a1bdee5b88fa4114bdfc7e9476a/a8709e2fc7acd96a" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Senior React Native Developer at SCHUFA</span></a></b></span> (Germany, Remote) Full-stack mobile role at Germany's 95-year-old credit institution ("fintech before fintech existed"). </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/86a1e3847dba8fb7e0c4d12e3b65787888db0314e379d3f47a52002ecb5cbbd1ee2e7590c4878a206d29ec32238a1505233fb0f311e37f96070ba60ce60ea0a8c357f5616a3edfad0d95bb853e75727fa62ebf84aad8982edee56fc346d3bd731f1986b480bfc0aa1988be069489afdfdd650a6dc252bf531ec081916a62972e9791e66ce407eceaea0026928c4893dcd46efc53a9f9985698c845cf0d33995ee0901709b2aea85211322aaaff968797/97b2eaa45c7f9e8c" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">React Native Frontend Engineer at Ornikar</span></a></b></span> (Paris, Remote-friendly) Build the marketplace where 30,000+ driving students book 150,000+ hours monthly. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/c2611140b43e7e8bac8794af7a7a0cbe5d5eec0f9ef09ad2ae1e9fa16cfff7ecc6d836cfeedc9c3134eea1fdc05dfde581e3cdf2b9c1dfe06ba028b17a13bd06e0dd605b8dbb34eb3b2cb7d5a92496b0abab444ef39089e602bb42bf850de7244cdcb0f66db3762c55f914ba1edeb9207ffe8102bcbbfb8cfc9eb7b6376d9b3103fab8b44abeea1df9925d6e3709b1228f9e4c4a30311cb1cbd01ebb900506856cc11f45034e43f1398ecc270801a052/7a571b2f53af5a9f" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Senior React Native Developer at Straight Arrow News</span></a></b></span> (US, Remote, $150k–$165k) End-to-end ownership of the mobile codebase, from Expo down to native bridges. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/adc16dadf48ab0fe47f6e98a9158d7ae8d4ad966aab0d70c17e1f8c54338e5b87eee940be8d0f7873ad343bc6b548be5548a0c52e227029bb49b7c8bd291def339206ec62290673cc3b28ce1b9a6638e1154a584fdeebcd670c24656843f4d6000e8a7c2a1322cd9ee5cf5bc917ff66153f136a6ba57f98a5aab30540b921c442f2431ee28e5e34ce0c574ce8b260604ab54d4d88a4933a5aa8f77418d5f5ed94d92b4eae399e36b3c36a6a7dc74f4f9/97683b2cd6b0abd6" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Client Full-Stack Engineer, IM Chat Platform at Binance</span></a></b></span> (APAC) Android-focused role on the chat platform at the world's largest crypto exchange. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/3d488e212db5e0bc0c25633b440bbe28db986c0b7cc7bedce7e4bddc0e152c6157947eda879df44529bc7d9e1767e1a32108e7a5a994bf4aa36b6cba2eed1997aaf6925a6ae1df05776778ac3c5fd585a769d87b4f20a2c32dbcb2f3ebaed35cfb38492d0ec423fe84a9971654b79f966b0b25d77c540944f4a80db3b365d627aab809dbbd3f04220f78da95a8d3dc234c673a78e672e06b0941fff6a4a890b7294f38f4379e0c381814ce8bb8a616c4/c7cc22938c30e1e2" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Principal Mobile Engineer, Android at Upstart</span></a></b></span> (USA) Senior role at the leading AI lending marketplace reducing the cost of borrowing. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/80a1e5dd5c83ff3921d781b9f83119115c89a5e51f0eb8a7b2e7a7ad6f041be9adf9f8bdea705c0a94601ddf7af7ad4223e6ffb9e13055fc550267013bc2211a6199311fb3b216ad809527e51918b0484a2b835745c14dd733fb5343d03daf776d0b9455a38989d9456c7ec803194158575393222db4298d4801148ad8a1680f8da04ef286a00eafbe2caffec12ccccffd4322b4b72fe2afca31c027ed6066fe10355b99f8bde00b55915e3cb68d00ae/a1dfededf6aa51b5" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Senior React Native Developer at Pixid</span></a></b></span> (Paris, Hybrid) HR scale-up connecting 222,000+ companies with 12,000+ temp agencies across Europe. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/14408cb507b270a4dde397322e567f5bb2de9532b37285e7394246e6d88bc6895083d4bbd144d840d4b6b52e61cd81e0a87051f6e503144f1f8561f28c82c89fc189213baa19d9a27ae62d8365dab446cfc37f5bb4c6aaf9ab1a22cd397e27fed3438b5fe56b93568ae267388d9663e5b302fbf4be8f23520d07c9cc504ca252343e94584acff3fcc3c0f58d1d2df59e01d81757462c9ec56a4b69310c1e81670c42782fafdbf6b247db9206567f590c/1af878e29bd185a5" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">React Native Developer at E-KENT</span></a></b></span> (Paris, Hybrid) Small, product-focused team building an on-demand urban logistics app used daily by field professionals. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/d075321b82567fb5e5f6a5fc8fd73407f6e7b41ba2b6c43e7ad70049a916d0a53177f1baa66c5c5da158ccc4c098ee78ba518153efa3b64d5760eeb87e6f8c8411cf92b5de7553f7a66d4732f69f5624d382cb7db72383fe32e44ce5c08706a24c78137dc25ef464354b2246c9b25a27144cf787165600d6a3477fea79bbd07158fa7d1ae6712a5b0db80fffe096531df8b2da3679c85848a26141cb205a7329dad7a00e0ea6c92eafee71f2216a6f08/44fa32ce26885aec" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">React Native Developer at Euronet</span></a></b></span> (Athens, Hybrid) Join the epay wallet team building payment infrastructure used in 160+ countries. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/c17f96212e22bacb2bc7796c739f942aebed6d5bcdf97727cb16c34e4c344d96816d1eae4d757a33cad993ff7fb0bb1cf2385cb7cea9b6a0aab2eb24e6ca351f6e7cb00e9dc6a7d38057d8259ab34d27c79866db11dc663f9c3edf91043bade1a1e53066e94464f84e4571ce3e7f7067490b1309ec8b1c475257852b7d4f388a16d3ed0f4b99a19e3e27bc19e0c110e02575c9b71653f9ca3c990e186bbd74ad42085d4cdc5404a23344057e5ed011ab/88903fffb2a63d2e" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Senior React Native Developer at Wealthsimple</span></a></b></span> (Toronto) Clients & Accounts team at Canada's leading fintech with $125B+ under administration. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/eeb726a3ac6a4780454122b791c928dc32e1491b213913aec7e3ec07f733fa96b8118ead3f3f73e42d89bd9bed23f30670c032694de0bd936f2e7ca87a1f8f2bf069ba88dad5a97914f2afa5ec9ba264415e2dbf6142c68db13982e52ebbdc8be8af8d82e96573c3cdf6f0a98279fe0a2b85d512ce27dca193470b53c1977ce389d5c293e172963a12b79ef53afe6ab245e2893c45fb483a59233983a67ec5310eb48ab58bfbad6213e9e3938f147692/c55a2b9ec5f7bbbb" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Staff React Native Engineer at Doctolib</span></a></b></span> (Paris, Remote) Leadership role transforming the patient app into an AI-powered health companion. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:170.0%;padding:0px;text-align:left;word-break:break-word;"><span style="text-decoration:underline;"><b><a class="link" href="https://link.mail.beehiiv.com/v2/c/a1cf4b81f965c74099876055dda5aa8866dd4bfd6befd66c06d26e82c7b64f065acb6e6202474dbd3929120e2c9edafd42895939e78d261b3cf83d7484fc80d169c03d4c28a94a1319f3a536873a1bdb979cf9f62fbfd77989f80784fbb0760d328407569f78a2a10c45ffa466ce2dace8932450620474e563bdbaab463955395e74581c38c6bcde4d12dd72b1d3827231336051e8e3bb9fadf455918ba897657535e01e2f8589f273d9eab73fbc7a08/3b6746792dbc7151" target="_blank" rel="noopener noreferrer nofollow" style="text-decoration-color: inherit;"><span style="color: inherit;">Senior React Native Developer at Affirm</span></a></b></span> (Spain, Remote) Same Repayment UX team, open to Spain-based candidates. </p></li></ul></div></td></tr><tr><td align="center" valign="top" style="font-size:0px;line-height:0px;padding:4px 0px 4px;" class="dd"><table class="j" role="none" width="75%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td> </td></tr></table></td></tr><tr><td align="center" valign="top" style="padding-bottom:20px;padding-left:11px;padding-right:11px;padding-top:20px; " class="dd"><table role="none" border="0" cellspacing="0" cellpadding="0" style="margin:0 auto 0 auto;"><tr><td align="center" valign="top" style="width:648px;"><img src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80,width=1920,height=3840/uploads/asset/file/c8a8487e-789f-41ed-b16f-cbb44704157f/rn-upgrade.avif?t=1786524351" alt="" height="auto" width="648" style="display:block;width:100%;" border="0"/></td></tr></table></td></tr><tr><td class="dd" align="left" style="padding:0px 11px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:170.0%;"> 💬 Got questions or want to chat?<br>DM me on <a class="link" href="https://link.mail.beehiiv.com/v2/c/b5b8100d049affe6ca18a200258f573c2b82e9fbac42b7d6740ff90df76a27e240f79e32b9479637d63e53b6168852b1e54711b118eb1f90c95beb97c579bb34232c7caa89d26dbadc9051dc7019842c2bacfce5ccc9585506e78a1f65ae6edf55bd4d78121468f9af6264312f0c1cc6017f5aecba34f93f020759e3e6ea7040cfc98c9bd3e11d19dd46f48ed799b5c88b12bdf0993148fa0491a32957d66c6b39849e2e2354ea17918316f91738e389/334c474747b94ab5" target="_blank" rel="noopener noreferrer nofollow"><span>X</span></a> <b>@adnansahinovich</b> or visit <a class="link" href="https://link.mail.beehiiv.com/v2/c/319eddd79a49ad02d4f2d625658051fa0627c779fbec706fa26b792aa45caa120db6a23bcadb362d69c66fcaabd5a8a96b2383b46751aad67d54995bbcba9e32fe1d472c679b5e3cecc086785d3da93700085ea5d6a1131f983cb6f2ce233f8f6152f8f02f996dfca38dc75e295f940e25440bfc39ee5e76f77422843a1134d28fcfa4552e6fc960ea7b61d02e0ab4db31e70281cafcb44dca22ec461b635b8a2e3360e57416256e9ed24ea296db96d7/d19fa50b4a6a9f16" target="_blank" rel="noopener noreferrer nofollow"><span>nativeweekly.com</span></a> for weekly React Native digest. </p></td></tr></table></td></tr></table></td></tr><tr><td align="center" valign="top"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><tr><td class="b" align="center" valign="top" bgcolor="#464646" style="padding:0px 0px 0px 0px;border-style:solid;border-width: 0px 1px 1px 1px;border-color: #ECECEC;border-bottom-left-radius:11px;border-bottom-right-radius:11px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td height="10" style="line-height:1px;font-size:1px;height:10px;"> </td></tr><tr><td class="w" align="center" valign="top" style="padding:0px 0px 0px 0px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td align="center" valign="top"><p style="font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:#FFFFFF!important;"> Update your email preferences or unsubscribe <a class="link" href="https://link.mail.beehiiv.com/v2/c/534f979c5427fa888a276fb5a3cc7ec07aaf0a29acd4f239e9ac3e438fb0e0811c88e226d6bf9bf1f169e929f0c17c07e79bf3570c9ec7a078250fbd1d48732ab130c9dcdb23eb5e6f600a2a044a880ace40d55561f510b880a38406567e4c1453e15bd7ed2bdc478be2e275eee9e3f1316bdbf5618d5fe50fe1a55d041c8f7e202788f926d209e73d337e61b765897c8cd722b540f1ae79a98ba97aa4110e9b1f92804bb5a13ab05c887d8cbc71eea1/f7a62dd70500ff8d" style="text-decoration:underline;text-decoration-color:#FFFFFF!important;color:#FFFFFF!important;"> here</a></p><p class="copyright" style="font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:#FFFFFF!important;"> © 2026 Nativeweekly </p><p style="font-family:'Inter',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:#FFFFFF!important;"> Friedrichshain<br>Berlin, Friedrichshain 10243, Germany </p></td></tr><tr style="display: table-row !important;"><td align="center" valign="top" style="padding-top:20px;" style="display:table-cell !important;"><table role="none" border="0" cellspacing="0" cellpadding="0" align="center" style="display:table !important;"><tr style="display:table-row !important;"><td class="u" align="center" valign="middle" height="32" style="height:32px;display:table-cell !important; max-height: 32px !important;margin:0px !important; background-color: #ffffff !important;"><a style="line-height:32px !important;text-decoration:none;display:block !important;" href="https://link.mail.beehiiv.com/v2/c/0beafebd7dfa8f5e241099a6b49f6217fa8c4ef953a5c64d6c0436b58618000697eb2525e6b9b06a7b51a4e0450bf73694ccf55466885c4de4735794b8419a3502b039685a655b90f526530fb01dfe1d394f17d720537b49f23cb887f57ab4aefc8435e1eb34d3aa8c3952143bfb22aa8168c8c752cc2ae19524765d09140dfcf52cab6aa3ce00bc107030f608e9436a6db1b4700d6fb0c0ae4ca3b4540087b9e87ba07782a769dc7897dc35f8807663/1361a7684f1d5649"><img src="https://media.beehiiv.com/output-onlinepngtools.png" width="16" alt="beehiiv logo" style="display:inline-block !important;max-width:16px !important; vertical-align:-3px !important;width: 16px !important;" border="0"/><span style="padding-left:11px !important;display: inline-block !important;">Powered by beehiiv</span></a></td></tr></table></td></tr><tr><td align="left" valign="top" height="2" style="height:2px;line-height:1px;font-size:1px;mso-line-height-rule:exactly;"><a href='https://hp.beehiiv.com/b4b9c1b7-f839-401e-9f0a-b66af93dffb3' style="color: #464646 !important; cursor: default; font-size: 1px; text-decoration: none;"></a></td></tr><tr><td align="left" valign="top" height="2" style="height:2px;"><a href='https://email.beehiivstatus.com/c6567b863ec036bd025e8eed27005b2159cca218/hclick' clicktracking="off" style="color: #464646 !important; cursor: default; font-size: 1px; text-decoration: none;"></a></td></tr></table></td></tr></table></td></tr></td></tr></table></td></tr></table></td></tr></table></td></tr></table></div></body></html>