[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:mobile\u002Fmobile-navigation":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","Mobil","","mobile-navigation","Mobile Navigation","tr",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,76,79,82,85,88,91,94,97,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":8,"name":9,"count":11},{"key":77,"name":78,"count":11},"mobile-networking-offline","Mobile Networking Offline",{"key":80,"name":81,"count":11},"mobile-performance-battery","Mobile Performance Battery",{"key":83,"name":84,"count":11},"mobile-security-storage","Mobile Security Storage",{"key":86,"name":87,"count":11},"mobile-state-data","Mobile State Data",{"key":89,"name":90,"count":11},"mobile-testing-automation","Mobile Testing Automation",{"key":92,"name":93,"count":11},"mobile-ui-lifecycle","Mobile Ui Lifecycle",{"key":95,"name":96,"count":11},"rn-javascript-typescript-fundamentals","Rn Javascript Typescript Fundamentals",{"key":98,"name":99,"count":11},"rn-native-bridge-modules","Rn Native Bridge Modules",{"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,172,185,198],{"id":128,"topic":9,"difficulty":129,"body":130,"options":131,"correct_key":136,"explanation":144},"019f677d-2b8a-7604-9135-c3df670016ea",1,"Stack-tabanlı navigasyonda, navigasyon stack'i nedir?",[132,135,138,141],{"key":133,"text":134},"a","Ziyaret edilmiş olsun olmasın belleğe yüklenmiş her ekranın listesi",{"key":136,"text":137},"b","Yeni bir ekrana girildiğinde onu tepeye ekleyen (push), geri gidildiğinde çıkaran (pop) sıralı bir koleksiyon",{"key":139,"text":140},"c","Kullanıcının tek dokunuşla geçtiği, hiçbiri diğerinin üzerine yığılmayan sabit üst-seviye hedefler kümesi",{"key":142,"text":143},"d","Kullanıcının en son bastığı düğmeye göre kendi içeriğini yeniden çizen tek bir ekran","Navigasyon stack'i ekranları son-giren-ilk-çıkar (LIFO) bir dizi olarak modeller: yeni ekran açılınca tepeye eklenir, geri gidilince tepedeki ekran çıkarılır ve altındaki görünür. (a) daha çok bir cache'i tarif eder; (c) stack değil tab navigasyonunu tarif eder; (d) hedeflerden oluşan bir stack değil, tek bir değişken görünümü tarif eder.",{"id":146,"topic":9,"difficulty":129,"body":147,"options":148,"correct_key":139,"explanation":157},"019f677d-2b8b-71b7-b00d-446be05def5b","Tab-tabanlı navigasyonu, stack-tabanlı push navigasyondan ayıran nedir?",[149,151,153,155],{"key":133,"text":150},"Aynı anda yalnızca bir hedef var olabilir, bir tab açmak öncekini kalıcı olarak değiştirir",{"key":136,"text":152},"Her hedefe, önce paylaşılan bir stack'ten mevcut ekranı çıkararak ulaşılır",{"key":139,"text":154},"Birkaç üst-seviye hedef yan yana durur, doğrudan geçilir, her biri durumunu korur",{"key":142,"text":156},"Geri gitme kavramı yoktur, yalnızca sabit bir sırayla bir sonraki tab'a ilerleme vardır","Tab'lar uygulamanın paralel üst-seviye bölümlerini temsil eder; tab değiştirmek geçmişte geri gitmek yerine doğrudan başka bir bölüme atlamaktır ve her tab genelde pasifken kendi durumunu korur. (a) ve (d) tab'ları tek bir hedef ya da katı ileri sıra olarak yanlış tarif eder; (b) tab'ları değil stack navigasyonunu tarif eder.",{"id":159,"topic":9,"difficulty":160,"body":161,"options":162,"correct_key":133,"explanation":171},"019f677d-2b8b-7823-b59d-146d71d24ccf",2,"Bir tab'ın kendi iç stack'ini barındırdığı nested navigasyonda, kullanıcı bir tab'ın içinde bir ekran push ettiğinde tipik olarak ne olur?",[163,165,167,169],{"key":133,"text":164},"O tab'a ait stack büyür; diğer tab'lara ait stack'ler bundan etkilenmez",{"key":136,"text":166},"Tüm tab'lar tek bir stack'i paylaşır, bu yüzden ekran aynı anda her tab'da görünür şekilde push edilir",{"key":139,"text":168},"Nesting, bir stack'in yalnızca başka stack'ler içerebileceği, tek bir ekranı asla içeremeyeceği anlamına gelir",{"key":142,"text":170},"Nesting yalnızca görsel bir stil tercihidir, tab değiştirirken neyin hatırlandığını etkilemez","Genellikle her tab, üst-seviye tab konteynerinin içine yerleştirilmiş bağımsız bir navigasyon stack'ine sahiptir; bu yüzden bir tab içinde push yapmak yalnızca o tab'ın kendi geçmişini değiştirir. (b) farklı bir mimari olan paylaşımlı-stack tasarımını tarif eder; (c) ve (d) nesting'in yapısal anlamını yanlış tarif eder.",{"id":173,"topic":9,"difficulty":160,"body":174,"options":175,"correct_key":136,"explanation":184},"019f677d-2b8b-7f2e-b2a0-e86cd33fd61f","Bir kullanıcı stack üzerinde üç ekran derinlikte ve geri düğmesine\u002Fgestüre basıyor. Beklenen varsayılan davranış nedir?",[176,178,180,182],{"key":133,"text":177},"Her zaman ara ekranları atlayarak kullanıcıyı uygulamanın ana tab'ına döndürür",{"key":136,"text":179},"Mevcut ekranı çıkarır (pop) ve hemen altındaki ekranı gösterir",{"key":139,"text":181},"Kaç ekran açık olursa olsun uygulamayı hemen kapatır",{"key":142,"text":183},"Hiçbir yere gitmek yerine mevcut ekranı yeni veriyle yeniden yükler","Geri gitmenin standart sözleşmesi tek bir pop işlemidir: stack'in tepesini çıkar ve şimdi tepede olanı göster, tek adım tek adım. (a) ve (c) gerçek stack derinliğini atlar ya da yok sayar; (d) bir yenileme eylemini navigasyon eylemiyle karıştırır.",{"id":186,"topic":9,"difficulty":160,"body":187,"options":188,"correct_key":142,"explanation":197},"019f677d-2b8c-752d-8cb9-2b7ccef74953","Swipe-back (kaydırarak geri) gestürü, geri kontrolünün pop davranışıyla nasıl ilişkilidir?",[189,191,193,195],{"key":133,"text":190},"Ayrılınan ekranı kalıcı olarak siler, böylece o oturumda bir daha ziyaret edilemez",{"key":136,"text":192},"Son navigasyon adımını tersine çevirmek yerine yepyeni bir hedef açmış gibi davranır",{"key":139,"text":194},"Yalnızca stack'in ilk ekranında kullanılabilir, başka hiçbir yerde değil",{"key":142,"text":196},"Geri kontrolüyle aynı pop işlemini gerçekleştirir, genelde yarıda bırakılıp iptal edilebilen bir geçişle","Swipe-back gestürü, geri kontrolünün tetiklediği aynı pop işlemi için alternatif bir girdi yöntemidir; genelde kullanıcının yarıda bırakıp iptal ederek mevcut ekranda kalabildiği sürüklenebilir bir geçiş olarak sunulur. (a), (b) ve (c) gestürün navigasyona nasıl eşlendiğiyle ilgisiz davranışlar tarif eder.",{"id":199,"topic":9,"difficulty":129,"body":200,"options":201,"correct_key":139,"explanation":210},"019f677d-2b8c-7a61-a98a-107375b043e0","Kavramsal düzeyde deep link nedir?",[202,204,206,208],{"key":133,"text":203},"Hangi URL'ye dokunulursa dokunulsun her zaman uygulamanın ana ekranını açan link",{"key":136,"text":205},"Cihazın ana ekranına yerleştirilip uygulamayı başlatan kısayol simgesi",{"key":139,"text":207},"Kullanıcıyı uygulama içinde belirli bir ekrana götürmesi amaçlanan bir URL ya da tanımlayıcı",{"key":142,"text":209},"Uygulamanın verisini yenilemek için periyodik olarak yaptığı arka plan ağ isteği","Deep link'in amacı, uygulama içindeki bir hedef ekranı kodlamaktır; böylece açıldığında kullanıcı genel bir giriş noktası yerine o belirli ekrana iner. (a) deep link'in tüm amacıyla çelişir; (b) ve (d) ilgisiz kavramları (bir launcher kısayolu, arka plan senkron çağrısı) tarif eder.",{"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":160,"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":6,"name_en":332,"sort":333,"specializations":334},"Mobile",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},[10,395],"en",[397,398],"google","github",21750,true]