[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:mobile\u002Frn-native-bridge-modules":4,"config":211},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":112,"samples":126},"mobile","Mobile","","rn-native-bridge-modules","Rn Native Bridge Modules","en",75,2400,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,100,103,106,109],{"key":19,"name":20,"count":11},"fl-dart-async-isolates","Fl Dart Async Isolates",{"key":22,"name":23,"count":11},"fl-dart-language-null-safety","Fl Dart Language Null Safety",{"key":25,"name":26,"count":11},"fl-flutter-persistence-storage","Fl Flutter Persistence Storage",{"key":28,"name":29,"count":11},"fl-flutter-platform-channels-lifecycle","Fl Flutter Platform Channels Lifecycle",{"key":31,"name":32,"count":11},"fl-flutter-rendering-widget-tree","Fl Flutter Rendering Widget Tree",{"key":34,"name":35,"count":11},"fl-flutter-state-management-widgets","Fl Flutter State Management Widgets",{"key":37,"name":38,"count":11},"ios-core-data-swiftdata-persistence","Ios Core Data Swiftdata Persistence",{"key":40,"name":41,"count":11},"ios-lifecycle-background-execution","Ios Lifecycle Background Execution",{"key":43,"name":44,"count":11},"ios-memory-management-arc","Ios Memory Management Arc",{"key":46,"name":47,"count":11},"ios-swift-concurrency-structured","Ios Swift Concurrency Structured",{"key":49,"name":50,"count":11},"ios-swift-type-system-optionals","Ios Swift Type System Optionals",{"key":52,"name":53,"count":11},"ios-swiftui-state-rendering","Ios Swiftui State Rendering",{"key":55,"name":56,"count":11},"kt-android-lifecycle-background-execution","Kt Android Lifecycle Background Execution",{"key":58,"name":59,"count":11},"kt-android-memory-context-leaks","Kt Android Memory Context Leaks",{"key":61,"name":62,"count":11},"kt-android-room-persistence","Kt Android Room Persistence",{"key":64,"name":65,"count":11},"kt-jetpack-compose-state-recomposition","Kt Jetpack Compose State Recomposition",{"key":67,"name":68,"count":11},"kt-kotlin-coroutines-flow","Kt Kotlin Coroutines Flow",{"key":70,"name":71,"count":11},"kt-kotlin-type-system-null-safety","Kt Kotlin Type System Null Safety",{"key":73,"name":74,"count":11},"mobile-distribution-ci","Mobile Distribution Ci",{"key":76,"name":77,"count":11},"mobile-navigation","Mobile Navigation",{"key":79,"name":80,"count":11},"mobile-networking-offline","Mobile Networking Offline",{"key":82,"name":83,"count":11},"mobile-performance-battery","Mobile Performance Battery",{"key":85,"name":86,"count":11},"mobile-security-storage","Mobile Security Storage",{"key":88,"name":89,"count":11},"mobile-state-data","Mobile State Data",{"key":91,"name":92,"count":11},"mobile-testing-automation","Mobile Testing Automation",{"key":94,"name":95,"count":11},"mobile-ui-lifecycle","Mobile Ui Lifecycle",{"key":97,"name":98,"count":11},"rn-javascript-typescript-fundamentals","Rn Javascript Typescript Fundamentals",{"key":8,"name":9,"count":11},{"key":101,"name":102,"count":11},"rn-navigation-lifecycle","Rn Navigation Lifecycle",{"key":104,"name":105,"count":11},"rn-networking-persistence-offline","Rn Networking Persistence Offline",{"key":107,"name":108,"count":11},"rn-performance-rendering","Rn Performance Rendering",{"key":110,"name":111,"count":11},"rn-react-hooks-state-management","Rn React Hooks State Management",[113,117,120,123],{"key":114,"name":115,"count":116},"android-kotlin","Android (Kotlin)",450,{"key":118,"name":119,"count":116},"flutter","Flutter",{"key":121,"name":122,"count":116},"ios-swift","iOS (Swift)",{"key":124,"name":125,"count":116},"react-native","React Native",[127,145,158,171,184,198],{"id":128,"topic":9,"difficulty":129,"body":130,"options":131,"correct_key":133,"explanation":144},"019fa9e5-71e2-713a-85df-fffb7074c3fe",1,"In the classic (\"old\") React Native architecture, what is the \"bridge\"?",[132,135,138,141],{"key":133,"text":134},"a","An asynchronous messaging layer that serializes data to pass calls between JS and native code.",{"key":136,"text":137},"b","A native UI widget that renders React components directly.",{"key":139,"text":140},"c","A cache that stores AsyncStorage key-value pairs on disk.",{"key":142,"text":143},"d","A build tool that compiles JavaScript into native ARM machine code.","The classic bridge is an asynchronous, message-based channel: JS and native sides exchange serialized (JSON) messages, batched and processed on separate threads.",{"id":146,"topic":9,"difficulty":129,"body":147,"options":148,"correct_key":136,"explanation":157},"019fa9e5-71e2-7a45-86f2-b0d1f5a99314","Which statement about the JS thread in React Native is correct?",[149,151,153,155],{"key":133,"text":150},"It is the same OS thread that draws native views to the screen.",{"key":136,"text":152},"It runs your application's JavaScript logic and is separate from the native UI (main) thread.",{"key":139,"text":154},"It only exists in debug builds and is removed in release builds.",{"key":142,"text":156},"It executes Java\u002FKotlin code directly without any JS engine.","React Native runs app JS on its own thread (historically called the \"JS thread\"), distinct from the native UI thread that handles rendering and touch input.",{"id":159,"topic":9,"difficulty":129,"body":160,"options":161,"correct_key":133,"explanation":170},"019fa9e5-71e4-77e3-a8ee-539a1237f169","What is a \"native module\" in React Native?",[162,164,166,168],{"key":133,"text":163},"A piece of platform-specific (Java\u002FKotlin or Objective-C\u002FSwift) code exposed to JavaScript.",{"key":136,"text":165},"A CSS-like style object applied only on iOS.",{"key":139,"text":167},"A third-party npm package that has no native code at all.",{"key":142,"text":169},"A JavaScript file bundled separately from the main app bundle.","A native module wraps platform SDK functionality (camera, sensors, storage, etc.) written in Java\u002FKotlin or Objective-C\u002FSwift and exposes it as a JS-callable API.",{"id":172,"topic":9,"difficulty":129,"body":173,"options":174,"correct_key":133,"explanation":183},"019fa9e5-71e5-7247-a2ac-3c6ac83fd43a","Why is the classic bridge described as \"asynchronous\"?",[175,177,179,181],{"key":133,"text":176},"Because JS-to-native calls are queued and dispatched in batches, without blocking the caller for a synchronous return value.",{"key":136,"text":178},"Because it only works when the device has an active internet connection.",{"key":139,"text":180},"Because it uses WebSockets to talk to a remote debugging server.",{"key":142,"text":182},"Because native modules are optional and can be loaded at any time.","Bridge calls are enqueued as serialized messages and flushed in batches; the calling side does not block waiting for an immediate synchronous result.",{"id":185,"topic":9,"difficulty":186,"body":187,"options":188,"correct_key":139,"explanation":197},"019fa9e5-71e5-7926-aaae-23e87dc0fca1",2,"What does JSI stand for in the new React Native architecture?",[189,191,193,195],{"key":133,"text":190},"JSON Serialization Index — a lookup table for bridge message IDs.",{"key":136,"text":192},"JavaScript Import — a module resolution system for native dependencies.",{"key":139,"text":194},"JavaScript Interface — a C++ layer for direct JS-native object references.",{"key":142,"text":196},"Java Script Isolation — a sandbox that prevents JS from calling native code.","JSI (JavaScript Interface) is a lightweight C++ API that lets JavaScript objects hold direct references to C++ host objects\u002Ffunctions, removing the need for JSON serialization on every call.",{"id":199,"topic":9,"difficulty":186,"body":200,"options":201,"correct_key":139,"explanation":210},"019fa9e5-71e6-70bd-9b90-e187ab2ea1fa","Why can JSI-based calls be synchronous, unlike classic bridge calls?",[202,204,206,208],{"key":133,"text":203},"Because JSI forces all native modules to run on the JS thread itself.",{"key":136,"text":205},"Because JSI compresses JSON messages so they transfer instantly.",{"key":139,"text":207},"Because JS holds a direct reference to a native function\u002Fobject and can invoke it in-place, without message serialization.",{"key":142,"text":209},"Because JSI disables the event loop during the call.","With JSI, a JS object can hold a live reference to a native (C++) function and call it directly and synchronously, since no cross-thread message queue or JSON round-trip is required.",{"fields":212,"seniorities":388,"interview_shapes":389,"locales":394,"oauth":396,"question_count":399,"coach_enabled":400,"jd_match_enabled":400},[213,238,258,275,299,312,331,340,362,369,375,382],{"key":214,"name_tr":215,"name_en":215,"sort":129,"specializations":216},"backend","Backend",[217,220,223,226,229,232,235],{"key":218,"name":219,"field":214},"general","Genel",{"key":221,"name":222,"field":214},"go","Go",{"key":224,"name":225,"field":214},"python","Python",{"key":227,"name":228,"field":214},"java","Java",{"key":230,"name":231,"field":214},"csharp","C#\u002F.NET",{"key":233,"name":234,"field":214},"nodejs","Node.js",{"key":236,"name":237,"field":214},"php","PHP",{"key":239,"name_tr":240,"name_en":240,"sort":186,"specializations":241},"frontend","Frontend",[242,243,246,249,252,255],{"key":218,"name":219,"field":239},{"key":244,"name":245,"field":239},"javascript","JavaScript",{"key":247,"name":248,"field":239},"typescript","TypeScript",{"key":250,"name":251,"field":239},"react","React",{"key":253,"name":254,"field":239},"vue","Vue",{"key":256,"name":257,"field":239},"angular","Angular",{"key":259,"name_tr":260,"name_en":260,"sort":261,"specializations":262},"fullstack","Fullstack",3,[263,264,265,266,267,268,269,270,271,272,273,274],{"key":218,"name":219,"field":259},{"key":221,"name":222,"field":214},{"key":224,"name":225,"field":214},{"key":227,"name":228,"field":214},{"key":230,"name":231,"field":214},{"key":233,"name":234,"field":214},{"key":236,"name":237,"field":214},{"key":244,"name":245,"field":239},{"key":247,"name":248,"field":239},{"key":250,"name":251,"field":239},{"key":253,"name":254,"field":239},{"key":256,"name":257,"field":239},{"key":276,"name_tr":277,"name_en":277,"sort":278,"specializations":279},"devops-cloud","DevOps \u002F Cloud",4,[280,281,284,287,290,293,296],{"key":218,"name":219,"field":276},{"key":282,"name":283,"field":276},"aws","AWS",{"key":285,"name":286,"field":276},"gcp","GCP",{"key":288,"name":289,"field":276},"azure","Azure",{"key":291,"name":292,"field":276},"kubernetes","Kubernetes",{"key":294,"name":295,"field":276},"terraform","Terraform",{"key":297,"name":298,"field":276},"linux","Linux",{"key":300,"name_tr":301,"name_en":301,"sort":302,"specializations":303},"ai-engineer","AI Engineer",5,[304,305,306,309],{"key":218,"name":219,"field":300},{"key":224,"name":225,"field":300},{"key":307,"name":308,"field":300},"llm-rag","LLM\u002FRAG",{"key":310,"name":311,"field":300},"mlops","MLOps",{"key":313,"name_tr":314,"name_en":315,"sort":316,"specializations":317},"database","Veritabanı","Database",6,[318,319,322,325,328],{"key":218,"name":219,"field":313},{"key":320,"name":321,"field":313},"postgresql","PostgreSQL",{"key":323,"name":324,"field":313},"mysql","MySQL",{"key":326,"name":327,"field":313},"mongodb","MongoDB",{"key":329,"name":330,"field":313},"redis","Redis",{"key":5,"name_tr":332,"name_en":6,"sort":333,"specializations":334},"Mobil",7,[335,336,337,338,339],{"key":218,"name":219,"field":5},{"key":121,"name":122,"field":5},{"key":114,"name":115,"field":5},{"key":118,"name":119,"field":5},{"key":124,"name":125,"field":5},{"key":341,"name_tr":342,"name_en":343,"sort":344,"specializations":345},"security","Güvenlik","Security",8,[346,347,350,353,356,359],{"key":218,"name":219,"field":341},{"key":348,"name":349,"field":341},"appsec","AppSec",{"key":351,"name":352,"field":341},"offensive-pentest","Offensive \u002F Pentest",{"key":354,"name":355,"field":341},"cloud-security","Cloud Security",{"key":357,"name":358,"field":341},"devsecops","DevSecOps",{"key":360,"name":361,"field":341},"blue-team-incident","Blue Team \u002F Incident",{"key":363,"name_tr":364,"name_en":365,"sort":366,"specializations":367},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[368],{"key":218,"name":219,"field":363},{"key":370,"name_tr":371,"name_en":371,"sort":372,"specializations":373},"data-engineer","Data Engineer",10,[374],{"key":218,"name":219,"field":370},{"key":376,"name_tr":377,"name_en":378,"sort":379,"specializations":380},"game-dev","Oyun Geliştirme","Game Development",11,[381],{"key":218,"name":219,"field":376},{"key":383,"name_tr":384,"name_en":384,"sort":385,"specializations":386},"ml-engineer","ML Engineer",12,[387],{"key":218,"name":219,"field":383},[14,15,16],{"junior":390,"mid":392,"senior":393},{"questions":391,"median_sec":3},20,{"questions":391,"median_sec":3},{"questions":391,"median_sec":3},[395,10],"tr",[397,398],"google","github",21750,true]