[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summary-f0120274ba6c30b2-using-dejavu-for-compose-guardrails-not-just-perfo-summary":3,"summaries-facets-categories":103,"summary-related-f0120274ba6c30b2-using-dejavu-for-compose-guardrails-not-just-perfo-summary":3982},{"id":4,"title":5,"ai":6,"body":13,"categories":67,"created_at":69,"date_modified":69,"description":61,"extension":70,"faq":69,"featured":71,"kicker_label":69,"meta":72,"navigation":84,"path":85,"published_at":86,"question":69,"scraped_at":87,"seo":88,"sitemap":89,"source_id":90,"source_name":91,"source_type":92,"source_url":93,"stem":94,"tags":95,"thumbnail_url":69,"tldr":100,"tweet":69,"unknown_tags":101,"__hash__":102},"summaries\u002Fsummaries\u002Ff0120274ba6c30b2-using-dejavu-for-compose-guardrails-not-just-perfo-summary.md","Using Dejavu for Compose Guardrails, Not Just Performance",{"provider":7,"model":8,"input_tokens":9,"output_tokens":10,"processing_time_ms":11,"cost_usd":12},"openrouter","google\u002Fgemini-3.1-flash-lite",6246,556,3312,0.0023955,{"type":14,"value":15,"toc":60},"minimark",[16,21,25,29,37,41,44],[17,18,20],"h2",{"id":19},"shifting-from-performance-to-guardrails","Shifting from Performance to Guardrails",[22,23,24],"p",{},"Integrating recomposition tracking tools like Dejavu is often viewed through the lens of finding \"performance disasters.\" However, in a mature codebase, the primary value is often operational: establishing guardrails. By defining explicit test contracts for recomposition, developers can ensure that future refactors or AI-generated code do not silently broaden recomposition scopes. The absence of a \"big win\" (i.e., finding a major performance bottleneck) does not mean the tool is ineffective; rather, it provides proof that existing state boundaries are sound and protects against future regressions.",[17,26,28],{"id":27},"debugging-tooling-integration","Debugging Tooling Integration",[22,30,31,32,36],{},"When adopting inspection tools, developers often blame their own app architecture for failures. In this case, a recurring ",[33,34,35],"code",{},"testTag"," mapping failure was initially misidentified as an issue with composable structure or screen complexity. By building a minimal reproduction—a single screen with two tagged composables and a state change—the author identified that the issue was actually an Android runtime edge case where Dejavu failed to map tags if it enabled after the activity had already resumed. This highlights the importance of isolating issues into a standalone repro rather than attempting to debug within a noisy, complex production app.",[17,38,40],{"id":39},"pragmatic-tool-adoption","Pragmatic Tool Adoption",[22,42,43],{},"Successful tool adoption requires a shift in expectations. Instead of seeking immediate performance gains, treat the integration as a way to build \"performance confidence.\" The author’s process involved:",[45,46,47,51,54,57],"ul",{},[48,49,50],"li",{},"Targeting stateful screens where boundaries are critical.",[48,52,53],{},"Performing app-side cleanup (extracting smaller, named composables) to improve testability.",[48,55,56],{},"Contributing fixes back to the library (e.g., PR #52) to resolve runtime edge cases.",[48,58,59],{},"Accepting that \"no news is good news\" when tests pass, as this confirms the current implementation is acceptable and creates a baseline for future maintenance.",{"title":61,"searchDepth":62,"depth":62,"links":63},"",2,[64,65,66],{"id":19,"depth":62,"text":20},{"id":27,"depth":62,"text":28},{"id":39,"depth":62,"text":40},[68],"Software Engineering",null,"md",false,{"content_references":73,"triage":79},[74],{"type":75,"title":76,"url":77,"context":78},"tool","Dejavu","https:\u002F\u002Fgithub.com\u002Fhimattm\u002Fdejavu","recommended",{"relevance":80,"novelty":81,"quality":80,"actionability":80,"composite":82,"reasoning":83},4,3,3.8,"Category: Software Engineering. The article discusses integrating Dejavu into Android codebases, addressing the audience's pain point of ensuring operational safety and maintaining code quality. It provides actionable steps for tool adoption and emphasizes the importance of establishing testable contracts, which can directly benefit developers looking to implement AI-powered features.",true,"\u002Fsummaries\u002Ff0120274ba6c30b2-using-dejavu-for-compose-guardrails-not-just-perfo-summary","2026-05-18 15:46:02","2026-05-18 19:00:31",{"title":5,"description":61},{"loc":85},"f0120274ba6c30b2","Level Up Coding","article","https:\u002F\u002Flevelup.gitconnected.com\u002Fdejavu-compose-and-the-difference-between-performance-wins-and-guardrails-294c6bd78e7d?source=rss----5517fd7b58a6---4","summaries\u002Ff0120274ba6c30b2-using-dejavu-for-compose-guardrails-not-just-perfo-summary",[96,97,98,99],"android","jetpack-compose","testing","performance","Integrating Dejavu into a mature Android codebase provides operational safety by turning recomposition expectations into testable contracts, even when no immediate performance bottlenecks exist.",[96,97,98,99],"RIJQNM361RwrADUW9jO2rHGORQrIafhTzm50495Ud5w",[104,107,110,113,116,119,121,123,125,127,129,131,134,136,138,140,142,144,146,148,150,152,154,156,158,161,164,166,168,170,172,174,177,179,181,183,185,187,189,191,193,195,197,199,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092,1094,1096,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604,1606,1608,1610,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1714,1716,1718,1720,1722,1724,1726,1728,1730,1732,1734,1736,1738,1740,1742,1744,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114,2116,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2144,2146,2148,2150,2152,2154,2156,2158,2160,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354,2356,2358,2360,2362,2364,2366,2368,2370,2372,2374,2376,2378,2380,2382,2384,2386,2388,2390,2392,2394,2396,2398,2400,2402,2404,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436,2438,2440,2442,2444,2446,2448,2450,2452,2454,2456,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498,2500,2502,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582,2584,2586,2588,2590,2592,2594,2596,2598,2600,2602,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646,2648,2650,2652,2654,2656,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698,2700,2702,2704,2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734,2736,2738,2740,2742,2744,2746,2748,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802,2804,2806,2808,2810,2812,2814,2816,2818,2820,2822,2824,2826,2828,2830,2832,2834,2836,2838,2840,2842,2844,2846,2848,2850,2852,2854,2856,2858,2860,2862,2864,2866,2868,2870,2872,2874,2876,2878,2880,2882,2884,2886,2888,2890,2892,2894,2896,2898,2900,2902,2904,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924,2926,2928,2930,2932,2934,2936,2938,2940,2942,2944,2946,2948,2950,2952,2954,2956,2958,2960,2962,2964,2966,2968,2970,2972,2974,2976,2978,2980,2982,2984,2986,2988,2990,2992,2994,2996,2998,3000,3002,3004,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024,3026,3028,3030,3032,3034,3036,3038,3040,3042,3044,3046,3048,3050,3052,3054,3056,3058,3060,3062,3064,3066,3068,3070,3072,3074,3076,3078,3080,3082,3084,3086,3088,3090,3092,3094,3096,3098,3100,3102,3104,3106,3108,3110,3112,3114,3116,3118,3120,3122,3124,3126,3128,3130,3132,3134,3136,3138,3140,3142,3144,3146,3148,3150,3152,3154,3156,3158,3160,3162,3164,3166,3168,3170,3172,3174,3176,3178,3180,3182,3184,3186,3188,3190,3192,3194,3196,3198,3200,3202,3204,3206,3208,3210,3212,3214,3216,3218,3220,3222,3224,3226,3228,3230,3232,3234,3236,3238,3240,3242,3244,3246,3248,3250,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3312,3314,3316,3318,3320,3322,3324,3326,3328,3330,3332,3334,3336,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356,3358,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412,3414,3416,3418,3420,3422,3424,3426,3428,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448,3450,3452,3454,3456,3458,3460,3462,3464,3466,3468,3470,3472,3474,3476,3478,3480,3482,3484,3486,3488,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510,3512,3514,3516,3518,3520,3522,3524,3526,3528,3530,3532,3534,3536,3538,3540,3542,3544,3546,3548,3550,3552,3554,3556,3558,3560,3562,3564,3566,3568,3570,3572,3574,3576,3578,3580,3582,3584,3586,3588,3590,3592,3594,3596,3598,3600,3602,3604,3606,3608,3610,3612,3614,3616,3618,3620,3622,3624,3626,3628,3630,3632,3634,3636,3638,3640,3642,3644,3646,3648,3650,3652,3654,3656,3658,3660,3662,3664,3666,3668,3670,3672,3674,3676,3678,3680,3682,3684,3686,3688,3690,3692,3694,3696,3698,3700,3702,3704,3706,3708,3710,3712,3714,3716,3718,3720,3722,3724,3726,3728,3730,3732,3734,3736,3738,3740,3742,3744,3746,3748,3750,3752,3754,3756,3758,3760,3762,3764,3766,3768,3770,3772,3774,3776,3778,3780,3782,3784,3786,3788,3790,3792,3794,3796,3798,3800,3802,3804,3806,3808,3810,3812,3814,3816,3818,3820,3822,3824,3826,3828,3830,3832,3834,3836,3838,3840,3842,3844,3846,3848,3850,3852,3854,3856,3858,3860,3862,3864,3866,3868,3870,3872,3874,3876,3878,3880,3882,3884,3886,3888,3890,3892,3894,3896,3898,3900,3902,3904,3906,3908,3910,3912,3914,3916,3918,3920,3922,3924,3926,3928,3930,3932,3934,3936,3938,3940,3942,3944,3946,3948,3950,3952,3954,3956,3958,3960,3962,3964,3966,3968,3970,3972,3974,3976,3978,3980],{"categories":105},[106],"Developer Productivity",{"categories":108},[109],"Business & SaaS",{"categories":111},[112],"AI & LLMs",{"categories":114},[115],"AI Automation",{"categories":117},[118],"Product Strategy",{"categories":120},[112],{"categories":122},[106],{"categories":124},[109],{"categories":126},[],{"categories":128},[112],{"categories":130},[],{"categories":132},[133],"AI News & Trends",{"categories":135},[115],{"categories":137},[115],{"categories":139},[133],{"categories":141},[115],{"categories":143},[115],{"categories":145},[112],{"categories":147},[112],{"categories":149},[112],{"categories":151},[133],{"categories":153},[112],{"categories":155},[112],{"categories":157},[],{"categories":159},[160],"Design & Frontend",{"categories":162},[163],"Data Science & Visualization",{"categories":165},[133],{"categories":167},[],{"categories":169},[68],{"categories":171},[112],{"categories":173},[115],{"categories":175},[176],"Marketing & Growth",{"categories":178},[160],{"categories":180},[112],{"categories":182},[115],{"categories":184},[],{"categories":186},[],{"categories":188},[160],{"categories":190},[115],{"categories":192},[106],{"categories":194},[68],{"categories":196},[160],{"categories":198},[112],{"categories":200},[201],"DevOps & Cloud",{"categories":203},[115],{"categories":205},[133],{"categories":207},[],{"categories":209},[],{"categories":211},[115],{"categories":213},[68],{"categories":215},[],{"categories":217},[109],{"categories":219},[],{"categories":221},[],{"categories":223},[115],{"categories":225},[112],{"categories":227},[115],{"categories":229},[112],{"categories":231},[112],{"categories":233},[],{"categories":235},[68],{"categories":237},[],{"categories":239},[],{"categories":241},[68],{"categories":243},[],{"categories":245},[68],{"categories":247},[112],{"categories":249},[112],{"categories":251},[176],{"categories":253},[160],{"categories":255},[160],{"categories":257},[112],{"categories":259},[115],{"categories":261},[68],{"categories":263},[112],{"categories":265},[112],{"categories":267},[115],{"categories":269},[115],{"categories":271},[163],{"categories":273},[133],{"categories":275},[115],{"categories":277},[176],{"categories":279},[115],{"categories":281},[118],{"categories":283},[68],{"categories":285},[],{"categories":287},[115],{"categories":289},[],{"categories":291},[115],{"categories":293},[68],{"categories":295},[201],{"categories":297},[160],{"categories":299},[112],{"categories":301},[],{"categories":303},[],{"categories":305},[115],{"categories":307},[],{"categories":309},[112],{"categories":311},[],{"categories":313},[106],{"categories":315},[68],{"categories":317},[109],{"categories":319},[112],{"categories":321},[133],{"categories":323},[112],{"categories":325},[],{"categories":327},[112],{"categories":329},[],{"categories":331},[68],{"categories":333},[163],{"categories":335},[],{"categories":337},[112],{"categories":339},[160],{"categories":341},[],{"categories":343},[160],{"categories":345},[115],{"categories":347},[],{"categories":349},[112],{"categories":351},[115],{"categories":353},[133],{"categories":355},[109],{"categories":357},[112],{"categories":359},[],{"categories":361},[115],{"categories":363},[112],{"categories":365},[118],{"categories":367},[],{"categories":369},[112],{"categories":371},[115],{"categories":373},[115],{"categories":375},[],{"categories":377},[163],{"categories":379},[112],{"categories":381},[],{"categories":383},[106],{"categories":385},[109],{"categories":387},[112],{"categories":389},[115],{"categories":391},[68],{"categories":393},[112],{"categories":395},[],{"categories":397},[],{"categories":399},[112],{"categories":401},[112],{"categories":403},[],{"categories":405},[160],{"categories":407},[],{"categories":409},[112],{"categories":411},[],{"categories":413},[115],{"categories":415},[112],{"categories":417},[160],{"categories":419},[],{"categories":421},[112],{"categories":423},[112],{"categories":425},[109],{"categories":427},[115],{"categories":429},[112],{"categories":431},[160],{"categories":433},[115],{"categories":435},[],{"categories":437},[],{"categories":439},[133],{"categories":441},[],{"categories":443},[112],{"categories":445},[109,176],{"categories":447},[],{"categories":449},[112],{"categories":451},[115],{"categories":453},[],{"categories":455},[],{"categories":457},[112],{"categories":459},[],{"categories":461},[112],{"categories":463},[201],{"categories":465},[],{"categories":467},[133],{"categories":469},[160],{"categories":471},[],{"categories":473},[133],{"categories":475},[133],{"categories":477},[112],{"categories":479},[176],{"categories":481},[],{"categories":483},[109],{"categories":485},[115],{"categories":487},[],{"categories":489},[112,201],{"categories":491},[112],{"categories":493},[112],{"categories":495},[112],{"categories":497},[115],{"categories":499},[112,68],{"categories":501},[163],{"categories":503},[112],{"categories":505},[176],{"categories":507},[115],{"categories":509},[115],{"categories":511},[],{"categories":513},[115],{"categories":515},[112],{"categories":517},[112,109],{"categories":519},[],{"categories":521},[160],{"categories":523},[160],{"categories":525},[],{"categories":527},[],{"categories":529},[133],{"categories":531},[],{"categories":533},[106],{"categories":535},[68],{"categories":537},[112],{"categories":539},[160],{"categories":541},[115],{"categories":543},[68],{"categories":545},[133],{"categories":547},[160],{"categories":549},[],{"categories":551},[112],{"categories":553},[112],{"categories":555},[112],{"categories":557},[112],{"categories":559},[133],{"categories":561},[106],{"categories":563},[112],{"categories":565},[115],{"categories":567},[201],{"categories":569},[160],{"categories":571},[115],{"categories":573},[],{"categories":575},[],{"categories":577},[160],{"categories":579},[133],{"categories":581},[163],{"categories":583},[],{"categories":585},[112],{"categories":587},[112],{"categories":589},[109],{"categories":591},[112],{"categories":593},[112],{"categories":595},[133],{"categories":597},[],{"categories":599},[115],{"categories":601},[68],{"categories":603},[],{"categories":605},[112],{"categories":607},[112],{"categories":609},[115],{"categories":611},[],{"categories":613},[],{"categories":615},[112],{"categories":617},[],{"categories":619},[109],{"categories":621},[115],{"categories":623},[115],{"categories":625},[],{"categories":627},[106],{"categories":629},[112],{"categories":631},[109],{"categories":633},[133],{"categories":635},[106],{"categories":637},[],{"categories":639},[],{"categories":641},[],{"categories":643},[133],{"categories":645},[133],{"categories":647},[],{"categories":649},[],{"categories":651},[109],{"categories":653},[],{"categories":655},[],{"categories":657},[106],{"categories":659},[],{"categories":661},[176],{"categories":663},[115],{"categories":665},[109],{"categories":667},[115],{"categories":669},[68],{"categories":671},[],{"categories":673},[118],{"categories":675},[160],{"categories":677},[68],{"categories":679},[112],{"categories":681},[115],{"categories":683},[109],{"categories":685},[112],{"categories":687},[],{"categories":689},[],{"categories":691},[68],{"categories":693},[163],{"categories":695},[118],{"categories":697},[115],{"categories":699},[112],{"categories":701},[],{"categories":703},[201],{"categories":705},[],{"categories":707},[115],{"categories":709},[],{"categories":711},[106],{"categories":713},[],{"categories":715},[112],{"categories":717},[112],{"categories":719},[160],{"categories":721},[176],{"categories":723},[115],{"categories":725},[],{"categories":727},[106],{"categories":729},[],{"categories":731},[133],{"categories":733},[112,201],{"categories":735},[112],{"categories":737},[133],{"categories":739},[112],{"categories":741},[109],{"categories":743},[112],{"categories":745},[],{"categories":747},[112],{"categories":749},[109],{"categories":751},[],{"categories":753},[68],{"categories":755},[160],{"categories":757},[133],{"categories":759},[163],{"categories":761},[106],{"categories":763},[112],{"categories":765},[115],{"categories":767},[68],{"categories":769},[],{"categories":771},[],{"categories":773},[118],{"categories":775},[],{"categories":777},[112],{"categories":779},[],{"categories":781},[160],{"categories":783},[68],{"categories":785},[160],{"categories":787},[112],{"categories":789},[160],{"categories":791},[],{"categories":793},[],{"categories":795},[133],{"categories":797},[115],{"categories":799},[112],{"categories":801},[112],{"categories":803},[112],{"categories":805},[109],{"categories":807},[112],{"categories":809},[],{"categories":811},[68],{"categories":813},[68],{"categories":815},[109],{"categories":817},[],{"categories":819},[112],{"categories":821},[112],{"categories":823},[109],{"categories":825},[133],{"categories":827},[176],{"categories":829},[112],{"categories":831},[115],{"categories":833},[],{"categories":835},[160],{"categories":837},[],{"categories":839},[112],{"categories":841},[112],{"categories":843},[],{"categories":845},[109],{"categories":847},[115],{"categories":849},[],{"categories":851},[201],{"categories":853},[163],{"categories":855},[68],{"categories":857},[176],{"categories":859},[112],{"categories":861},[68],{"categories":863},[115],{"categories":865},[],{"categories":867},[],{"categories":869},[115],{"categories":871},[106],{"categories":873},[115],{"categories":875},[118],{"categories":877},[109],{"categories":879},[],{"categories":881},[112],{"categories":883},[118],{"categories":885},[112],{"categories":887},[112],{"categories":889},[176],{"categories":891},[112],{"categories":893},[160],{"categories":895},[115],{"categories":897},[],{"categories":899},[],{"categories":901},[201],{"categories":903},[68],{"categories":905},[],{"categories":907},[115],{"categories":909},[112],{"categories":911},[160,112],{"categories":913},[106],{"categories":915},[],{"categories":917},[112],{"categories":919},[106],{"categories":921},[160],{"categories":923},[115],{"categories":925},[68],{"categories":927},[],{"categories":929},[112],{"categories":931},[],{"categories":933},[],{"categories":935},[112],{"categories":937},[106],{"categories":939},[],{"categories":941},[115],{"categories":943},[118],{"categories":945},[112],{"categories":947},[112],{"categories":949},[112],{"categories":951},[160],{"categories":953},[115],{"categories":955},[201],{"categories":957},[160],{"categories":959},[115],{"categories":961},[112],{"categories":963},[112],{"categories":965},[112],{"categories":967},[68],{"categories":969},[],{"categories":971},[133],{"categories":973},[],{"categories":975},[118],{"categories":977},[115],{"categories":979},[160],{"categories":981},[112],{"categories":983},[115],{"categories":985},[68],{"categories":987},[160],{"categories":989},[115],{"categories":991},[133],{"categories":993},[],{"categories":995},[112],{"categories":997},[160],{"categories":999},[112],{"categories":1001},[106],{"categories":1003},[133],{"categories":1005},[112],{"categories":1007},[176],{"categories":1009},[112],{"categories":1011},[115],{"categories":1013},[112],{"categories":1015},[115],{"categories":1017},[115],{"categories":1019},[112],{"categories":1021},[115],{"categories":1023},[160],{"categories":1025},[112],{"categories":1027},[],{"categories":1029},[],{"categories":1031},[68],{"categories":1033},[],{"categories":1035},[106],{"categories":1037},[201],{"categories":1039},[112],{"categories":1041},[],{"categories":1043},[106],{"categories":1045},[109],{"categories":1047},[176],{"categories":1049},[],{"categories":1051},[109],{"categories":1053},[],{"categories":1055},[112],{"categories":1057},[],{"categories":1059},[],{"categories":1061},[],{"categories":1063},[],{"categories":1065},[112],{"categories":1067},[115],{"categories":1069},[201],{"categories":1071},[106],{"categories":1073},[68],{"categories":1075},[112],{"categories":1077},[68],{"categories":1079},[118],{"categories":1081},[112],{"categories":1083},[176],{"categories":1085},[109],{"categories":1087},[112],{"categories":1089},[112],{"categories":1091},[112],{"categories":1093},[112,106],{"categories":1095},[68],{"categories":1097},[68],{"categories":1099},[160],{"categories":1101},[112],{"categories":1103},[],{"categories":1105},[],{"categories":1107},[],{"categories":1109},[68],{"categories":1111},[163],{"categories":1113},[133],{"categories":1115},[160],{"categories":1117},[],{"categories":1119},[112],{"categories":1121},[112],{"categories":1123},[],{"categories":1125},[115],{"categories":1127},[112],{"categories":1129},[],{"categories":1131},[115],{"categories":1133},[112],{"categories":1135},[109],{"categories":1137},[],{"categories":1139},[106],{"categories":1141},[112],{"categories":1143},[106],{"categories":1145},[112],{"categories":1147},[68],{"categories":1149},[176],{"categories":1151},[115],{"categories":1153},[112,160],{"categories":1155},[133],{"categories":1157},[112],{"categories":1159},[160],{"categories":1161},[],{"categories":1163},[68],{"categories":1165},[201],{"categories":1167},[160],{"categories":1169},[115],{"categories":1171},[],{"categories":1173},[],{"categories":1175},[],{"categories":1177},[],{"categories":1179},[68],{"categories":1181},[115],{"categories":1183},[115],{"categories":1185},[201],{"categories":1187},[112],{"categories":1189},[112],{"categories":1191},[115],{"categories":1193},[112],{"categories":1195},[112],{"categories":1197},[],{"categories":1199},[160],{"categories":1201},[],{"categories":1203},[],{"categories":1205},[115],{"categories":1207},[],{"categories":1209},[],{"categories":1211},[176],{"categories":1213},[176],{"categories":1215},[115],{"categories":1217},[68],{"categories":1219},[],{"categories":1221},[112],{"categories":1223},[112],{"categories":1225},[68],{"categories":1227},[160],{"categories":1229},[160],{"categories":1231},[115],{"categories":1233},[106],{"categories":1235},[112],{"categories":1237},[160],{"categories":1239},[160],{"categories":1241},[115],{"categories":1243},[115],{"categories":1245},[112],{"categories":1247},[],{"categories":1249},[],{"categories":1251},[112],{"categories":1253},[115],{"categories":1255},[133],{"categories":1257},[68],{"categories":1259},[112],{"categories":1261},[106],{"categories":1263},[112],{"categories":1265},[],{"categories":1267},[115],{"categories":1269},[115],{"categories":1271},[],{"categories":1273},[112],{"categories":1275},[106],{"categories":1277},[112],{"categories":1279},[106],{"categories":1281},[106],{"categories":1283},[],{"categories":1285},[],{"categories":1287},[115],{"categories":1289},[133],{"categories":1291},[115],{"categories":1293},[112],{"categories":1295},[112],{"categories":1297},[133],{"categories":1299},[163],{"categories":1301},[118],{"categories":1303},[133],{"categories":1305},[160],{"categories":1307},[],{"categories":1309},[],{"categories":1311},[133],{"categories":1313},[],{"categories":1315},[],{"categories":1317},[],{"categories":1319},[],{"categories":1321},[68],{"categories":1323},[163],{"categories":1325},[],{"categories":1327},[112],{"categories":1329},[112],{"categories":1331},[163],{"categories":1333},[68],{"categories":1335},[],{"categories":1337},[],{"categories":1339},[115],{"categories":1341},[133],{"categories":1343},[133],{"categories":1345},[115],{"categories":1347},[106],{"categories":1349},[112,201],{"categories":1351},[],{"categories":1353},[160],{"categories":1355},[106],{"categories":1357},[115],{"categories":1359},[160],{"categories":1361},[],{"categories":1363},[115],{"categories":1365},[115],{"categories":1367},[112],{"categories":1369},[176],{"categories":1371},[68],{"categories":1373},[160],{"categories":1375},[],{"categories":1377},[115],{"categories":1379},[112],{"categories":1381},[115],{"categories":1383},[115],{"categories":1385},[115],{"categories":1387},[176],{"categories":1389},[112],{"categories":1391},[115],{"categories":1393},[112],{"categories":1395},[],{"categories":1397},[176],{"categories":1399},[133],{"categories":1401},[115],{"categories":1403},[],{"categories":1405},[],{"categories":1407},[112],{"categories":1409},[115],{"categories":1411},[133],{"categories":1413},[115],{"categories":1415},[115],{"categories":1417},[],{"categories":1419},[112],{"categories":1421},[],{"categories":1423},[],{"categories":1425},[115],{"categories":1427},[],{"categories":1429},[],{"categories":1431},[163],{"categories":1433},[112],{"categories":1435},[163],{"categories":1437},[133],{"categories":1439},[112],{"categories":1441},[112],{"categories":1443},[115],{"categories":1445},[112],{"categories":1447},[],{"categories":1449},[],{"categories":1451},[201],{"categories":1453},[112],{"categories":1455},[],{"categories":1457},[],{"categories":1459},[106],{"categories":1461},[],{"categories":1463},[],{"categories":1465},[112],{"categories":1467},[],{"categories":1469},[],{"categories":1471},[68],{"categories":1473},[133],{"categories":1475},[176],{"categories":1477},[109],{"categories":1479},[112],{"categories":1481},[112],{"categories":1483},[109],{"categories":1485},[],{"categories":1487},[160],{"categories":1489},[115],{"categories":1491},[109],{"categories":1493},[112],{"categories":1495},[112],{"categories":1497},[106],{"categories":1499},[],{"categories":1501},[106],{"categories":1503},[112],{"categories":1505},[176],{"categories":1507},[115],{"categories":1509},[133],{"categories":1511},[109],{"categories":1513},[112],{"categories":1515},[112],{"categories":1517},[115],{"categories":1519},[],{"categories":1521},[112],{"categories":1523},[106],{"categories":1525},[112],{"categories":1527},[112],{"categories":1529},[],{"categories":1531},[133],{"categories":1533},[112],{"categories":1535},[],{"categories":1537},[109],{"categories":1539},[109],{"categories":1541},[112],{"categories":1543},[],{"categories":1545},[],{"categories":1547},[],{"categories":1549},[112],{"categories":1551},[133],{"categories":1553},[],{"categories":1555},[201],{"categories":1557},[112],{"categories":1559},[],{"categories":1561},[112],{"categories":1563},[112],{"categories":1565},[112],{"categories":1567},[112,201],{"categories":1569},[112],{"categories":1571},[112],{"categories":1573},[160],{"categories":1575},[115],{"categories":1577},[],{"categories":1579},[115],{"categories":1581},[115],{"categories":1583},[112],{"categories":1585},[112],{"categories":1587},[112],{"categories":1589},[106],{"categories":1591},[106],{"categories":1593},[68],{"categories":1595},[160],{"categories":1597},[115],{"categories":1599},[],{"categories":1601},[112],{"categories":1603},[133],{"categories":1605},[112],{"categories":1607},[109],{"categories":1609},[],{"categories":1611},[201],{"categories":1613},[160],{"categories":1615},[160],{"categories":1617},[115],{"categories":1619},[133],{"categories":1621},[115],{"categories":1623},[112],{"categories":1625},[],{"categories":1627},[112],{"categories":1629},[],{"categories":1631},[],{"categories":1633},[112],{"categories":1635},[112],{"categories":1637},[112],{"categories":1639},[115],{"categories":1641},[112],{"categories":1643},[112],{"categories":1645},[],{"categories":1647},[163],{"categories":1649},[115],{"categories":1651},[],{"categories":1653},[],{"categories":1655},[112],{"categories":1657},[133],{"categories":1659},[],{"categories":1661},[160],{"categories":1663},[201],{"categories":1665},[133],{"categories":1667},[68],{"categories":1669},[68],{"categories":1671},[133],{"categories":1673},[133],{"categories":1675},[201],{"categories":1677},[],{"categories":1679},[133],{"categories":1681},[112],{"categories":1683},[106],{"categories":1685},[112],{"categories":1687},[133],{"categories":1689},[],{"categories":1691},[68],{"categories":1693},[163],{"categories":1695},[112],{"categories":1697},[133],{"categories":1699},[68],{"categories":1701},[115],{"categories":1703},[133],{"categories":1705},[201],{"categories":1707},[115],{"categories":1709},[112],{"categories":1711},[112],{"categories":1713},[112],{"categories":1715},[],{"categories":1717},[109],{"categories":1719},[],{"categories":1721},[],{"categories":1723},[112],{"categories":1725},[112],{"categories":1727},[112],{"categories":1729},[112],{"categories":1731},[],{"categories":1733},[163],{"categories":1735},[106],{"categories":1737},[],{"categories":1739},[112],{"categories":1741},[112],{"categories":1743},[201],{"categories":1745},[201],{"categories":1747},[],{"categories":1749},[115],{"categories":1751},[133],{"categories":1753},[133],{"categories":1755},[112],{"categories":1757},[115],{"categories":1759},[],{"categories":1761},[160],{"categories":1763},[112],{"categories":1765},[112],{"categories":1767},[],{"categories":1769},[112],{"categories":1771},[],{"categories":1773},[68],{"categories":1775},[201],{"categories":1777},[112],{"categories":1779},[68],{"categories":1781},[109],{"categories":1783},[112],{"categories":1785},[],{"categories":1787},[115],{"categories":1789},[106],{"categories":1791},[106],{"categories":1793},[],{"categories":1795},[112],{"categories":1797},[160],{"categories":1799},[115],{"categories":1801},[],{"categories":1803},[112],{"categories":1805},[112],{"categories":1807},[115],{"categories":1809},[],{"categories":1811},[115],{"categories":1813},[68],{"categories":1815},[],{"categories":1817},[112],{"categories":1819},[],{"categories":1821},[112],{"categories":1823},[],{"categories":1825},[112],{"categories":1827},[112],{"categories":1829},[],{"categories":1831},[112],{"categories":1833},[133],{"categories":1835},[112],{"categories":1837},[112],{"categories":1839},[106],{"categories":1841},[112],{"categories":1843},[133],{"categories":1845},[115],{"categories":1847},[],{"categories":1849},[112],{"categories":1851},[160],{"categories":1853},[176],{"categories":1855},[112],{"categories":1857},[],{"categories":1859},[],{"categories":1861},[],{"categories":1863},[106],{"categories":1865},[133],{"categories":1867},[115],{"categories":1869},[112],{"categories":1871},[160],{"categories":1873},[115],{"categories":1875},[],{"categories":1877},[115],{"categories":1879},[],{"categories":1881},[112],{"categories":1883},[115],{"categories":1885},[112],{"categories":1887},[],{"categories":1889},[112],{"categories":1891},[112],{"categories":1893},[133],{"categories":1895},[160],{"categories":1897},[115],{"categories":1899},[160],{"categories":1901},[109],{"categories":1903},[],{"categories":1905},[],{"categories":1907},[112],{"categories":1909},[106],{"categories":1911},[133],{"categories":1913},[],{"categories":1915},[160],{"categories":1917},[],{"categories":1919},[68],{"categories":1921},[68],{"categories":1923},[160],{"categories":1925},[],{"categories":1927},[112],{"categories":1929},[],{"categories":1931},[176],{"categories":1933},[112],{"categories":1935},[201],{"categories":1937},[68],{"categories":1939},[],{"categories":1941},[115],{"categories":1943},[112],{"categories":1945},[106],{"categories":1947},[115],{"categories":1949},[115],{"categories":1951},[112],{"categories":1953},[],{"categories":1955},[106],{"categories":1957},[112],{"categories":1959},[109],{"categories":1961},[68],{"categories":1963},[160],{"categories":1965},[],{"categories":1967},[],{"categories":1969},[],{"categories":1971},[115],{"categories":1973},[160],{"categories":1975},[133],{"categories":1977},[112],{"categories":1979},[133],{"categories":1981},[160],{"categories":1983},[],{"categories":1985},[160],{"categories":1987},[133],{"categories":1989},[109],{"categories":1991},[68],{"categories":1993},[112],{"categories":1995},[133],{"categories":1997},[176],{"categories":1999},[],{"categories":2001},[],{"categories":2003},[163],{"categories":2005},[112,68],{"categories":2007},[133],{"categories":2009},[112],{"categories":2011},[115],{"categories":2013},[112],{"categories":2015},[115],{"categories":2017},[112],{"categories":2019},[112],{"categories":2021},[],{"categories":2023},[68],{"categories":2025},[112],{"categories":2027},[163],{"categories":2029},[115],{"categories":2031},[176],{"categories":2033},[201],{"categories":2035},[],{"categories":2037},[106],{"categories":2039},[115],{"categories":2041},[115],{"categories":2043},[68],{"categories":2045},[112],{"categories":2047},[112],{"categories":2049},[],{"categories":2051},[],{"categories":2053},[],{"categories":2055},[201],{"categories":2057},[133],{"categories":2059},[112],{"categories":2061},[112],{"categories":2063},[112],{"categories":2065},[],{"categories":2067},[163],{"categories":2069},[109],{"categories":2071},[],{"categories":2073},[115],{"categories":2075},[201],{"categories":2077},[],{"categories":2079},[160],{"categories":2081},[160],{"categories":2083},[],{"categories":2085},[68],{"categories":2087},[112],{"categories":2089},[160],{"categories":2091},[112],{"categories":2093},[],{"categories":2095},[133],{"categories":2097},[112],{"categories":2099},[112],{"categories":2101},[160],{"categories":2103},[115],{"categories":2105},[133],{"categories":2107},[],{"categories":2109},[115],{"categories":2111},[160],{"categories":2113},[112],{"categories":2115},[],{"categories":2117},[112],{"categories":2119},[112],{"categories":2121},[201],{"categories":2123},[133],{"categories":2125},[163],{"categories":2127},[163],{"categories":2129},[],{"categories":2131},[],{"categories":2133},[],{"categories":2135},[115],{"categories":2137},[68],{"categories":2139},[68],{"categories":2141},[112],{"categories":2143},[],{"categories":2145},[],{"categories":2147},[112],{"categories":2149},[],{"categories":2151},[115],{"categories":2153},[112],{"categories":2155},[],{"categories":2157},[112],{"categories":2159},[109],{"categories":2161},[112],{"categories":2163},[176],{"categories":2165},[115],{"categories":2167},[112],{"categories":2169},[112],{"categories":2171},[112],{"categories":2173},[68],{"categories":2175},[],{"categories":2177},[133],{"categories":2179},[115],{"categories":2181},[],{"categories":2183},[133],{"categories":2185},[115],{"categories":2187},[115],{"categories":2189},[],{"categories":2191},[109],{"categories":2193},[115],{"categories":2195},[],{"categories":2197},[112],{"categories":2199},[106],{"categories":2201},[133],{"categories":2203},[201],{"categories":2205},[115],{"categories":2207},[115],{"categories":2209},[106],{"categories":2211},[],{"categories":2213},[112],{"categories":2215},[],{"categories":2217},[],{"categories":2219},[160],{"categories":2221},[112,109],{"categories":2223},[112],{"categories":2225},[],{"categories":2227},[106],{"categories":2229},[163],{"categories":2231},[112],{"categories":2233},[68],{"categories":2235},[112],{"categories":2237},[115],{"categories":2239},[112],{"categories":2241},[112],{"categories":2243},[133],{"categories":2245},[115],{"categories":2247},[],{"categories":2249},[],{"categories":2251},[115],{"categories":2253},[112],{"categories":2255},[201],{"categories":2257},[],{"categories":2259},[112],{"categories":2261},[115],{"categories":2263},[],{"categories":2265},[115],{"categories":2267},[112],{"categories":2269},[176],{"categories":2271},[163],{"categories":2273},[115],{"categories":2275},[112],{"categories":2277},[201],{"categories":2279},[],{"categories":2281},[112],{"categories":2283},[176],{"categories":2285},[160],{"categories":2287},[112],{"categories":2289},[112],{"categories":2291},[],{"categories":2293},[176],{"categories":2295},[133],{"categories":2297},[112],{"categories":2299},[112],{"categories":2301},[106],{"categories":2303},[],{"categories":2305},[],{"categories":2307},[160],{"categories":2309},[112],{"categories":2311},[163],{"categories":2313},[176],{"categories":2315},[176],{"categories":2317},[133],{"categories":2319},[],{"categories":2321},[],{"categories":2323},[112],{"categories":2325},[112],{"categories":2327},[112],{"categories":2329},[],{"categories":2331},[112,68],{"categories":2333},[133],{"categories":2335},[115],{"categories":2337},[68],{"categories":2339},[112],{"categories":2341},[106],{"categories":2343},[],{"categories":2345},[],{"categories":2347},[106],{"categories":2349},[68],{"categories":2351},[176],{"categories":2353},[112],{"categories":2355},[],{"categories":2357},[160,112],{"categories":2359},[201],{"categories":2361},[106],{"categories":2363},[],{"categories":2365},[109],{"categories":2367},[109],{"categories":2369},[112],{"categories":2371},[112],{"categories":2373},[68],{"categories":2375},[115],{"categories":2377},[133],{"categories":2379},[176],{"categories":2381},[160],{"categories":2383},[112],{"categories":2385},[112],{"categories":2387},[112],{"categories":2389},[106],{"categories":2391},[112],{"categories":2393},[115],{"categories":2395},[133],{"categories":2397},[],{"categories":2399},[],{"categories":2401},[163],{"categories":2403},[68],{"categories":2405},[112],{"categories":2407},[160],{"categories":2409},[112],{"categories":2411},[163],{"categories":2413},[112],{"categories":2415},[112],{"categories":2417},[112],{"categories":2419},[115],{"categories":2421},[115],{"categories":2423},[112,109],{"categories":2425},[],{"categories":2427},[160],{"categories":2429},[],{"categories":2431},[112],{"categories":2433},[133],{"categories":2435},[106],{"categories":2437},[106],{"categories":2439},[115],{"categories":2441},[112],{"categories":2443},[112],{"categories":2445},[109],{"categories":2447},[68],{"categories":2449},[176],{"categories":2451},[112],{"categories":2453},[],{"categories":2455},[133],{"categories":2457},[112],{"categories":2459},[112],{"categories":2461},[112],{"categories":2463},[112],{"categories":2465},[133],{"categories":2467},[68],{"categories":2469},[68],{"categories":2471},[112],{"categories":2473},[112],{"categories":2475},[115],{"categories":2477},[133],{"categories":2479},[112],{"categories":2481},[160],{"categories":2483},[112],{"categories":2485},[112],{"categories":2487},[201],{"categories":2489},[112],{"categories":2491},[118],{"categories":2493},[115],{"categories":2495},[112],{"categories":2497},[133],{"categories":2499},[115],{"categories":2501},[176],{"categories":2503},[112],{"categories":2505},[],{"categories":2507},[112],{"categories":2509},[],{"categories":2511},[],{"categories":2513},[],{"categories":2515},[109],{"categories":2517},[112],{"categories":2519},[115],{"categories":2521},[133],{"categories":2523},[133],{"categories":2525},[133],{"categories":2527},[133],{"categories":2529},[],{"categories":2531},[106],{"categories":2533},[115],{"categories":2535},[133],{"categories":2537},[112],{"categories":2539},[106],{"categories":2541},[115],{"categories":2543},[112],{"categories":2545},[112,115],{"categories":2547},[115],{"categories":2549},[201],{"categories":2551},[133],{"categories":2553},[133],{"categories":2555},[115],{"categories":2557},[112],{"categories":2559},[],{"categories":2561},[133],{"categories":2563},[176],{"categories":2565},[106],{"categories":2567},[112],{"categories":2569},[112],{"categories":2571},[],{"categories":2573},[68],{"categories":2575},[],{"categories":2577},[106],{"categories":2579},[115],{"categories":2581},[133],{"categories":2583},[112],{"categories":2585},[133],{"categories":2587},[106],{"categories":2589},[133],{"categories":2591},[133],{"categories":2593},[],{"categories":2595},[109],{"categories":2597},[115],{"categories":2599},[133],{"categories":2601},[133],{"categories":2603},[133],{"categories":2605},[133],{"categories":2607},[133],{"categories":2609},[133],{"categories":2611},[133],{"categories":2613},[133],{"categories":2615},[133],{"categories":2617},[133],{"categories":2619},[163],{"categories":2621},[106],{"categories":2623},[112],{"categories":2625},[112],{"categories":2627},[],{"categories":2629},[112,106],{"categories":2631},[],{"categories":2633},[115],{"categories":2635},[133],{"categories":2637},[115],{"categories":2639},[112],{"categories":2641},[112],{"categories":2643},[112],{"categories":2645},[112],{"categories":2647},[112],{"categories":2649},[115],{"categories":2651},[109],{"categories":2653},[],{"categories":2655},[160],{"categories":2657},[133],{"categories":2659},[112],{"categories":2661},[],{"categories":2663},[],{"categories":2665},[115],{"categories":2667},[160],{"categories":2669},[112],{"categories":2671},[],{"categories":2673},[112],{"categories":2675},[],{"categories":2677},[176],{"categories":2679},[112],{"categories":2681},[],{"categories":2683},[],{"categories":2685},[133],{"categories":2687},[106],{"categories":2689},[112],{"categories":2691},[109],{"categories":2693},[112],{"categories":2695},[109],{"categories":2697},[160],{"categories":2699},[],{"categories":2701},[133],{"categories":2703},[],{"categories":2705},[160],{"categories":2707},[112],{"categories":2709},[176],{"categories":2711},[],{"categories":2713},[176],{"categories":2715},[],{"categories":2717},[],{"categories":2719},[115],{"categories":2721},[],{"categories":2723},[109],{"categories":2725},[106],{"categories":2727},[160],{"categories":2729},[68],{"categories":2731},[],{"categories":2733},[],{"categories":2735},[112],{"categories":2737},[106],{"categories":2739},[176],{"categories":2741},[],{"categories":2743},[115],{"categories":2745},[115],{"categories":2747},[133],{"categories":2749},[68],{"categories":2751},[112],{"categories":2753},[115],{"categories":2755},[112],{"categories":2757},[115],{"categories":2759},[112],{"categories":2761},[118],{"categories":2763},[133],{"categories":2765},[],{"categories":2767},[176],{"categories":2769},[],{"categories":2771},[68],{"categories":2773},[115],{"categories":2775},[],{"categories":2777},[112],{"categories":2779},[115],{"categories":2781},[109],{"categories":2783},[106],{"categories":2785},[112],{"categories":2787},[160],{"categories":2789},[68],{"categories":2791},[68],{"categories":2793},[112],{"categories":2795},[163],{"categories":2797},[112],{"categories":2799},[115],{"categories":2801},[109],{"categories":2803},[160],{"categories":2805},[115],{"categories":2807},[112],{"categories":2809},[112],{"categories":2811},[115],{"categories":2813},[133],{"categories":2815},[],{"categories":2817},[106],{"categories":2819},[112],{"categories":2821},[115],{"categories":2823},[112],{"categories":2825},[112],{"categories":2827},[],{"categories":2829},[160],{"categories":2831},[109],{"categories":2833},[133],{"categories":2835},[112],{"categories":2837},[112],{"categories":2839},[160],{"categories":2841},[112],{"categories":2843},[176],{"categories":2845},[163],{"categories":2847},[112],{"categories":2849},[133],{"categories":2851},[112],{"categories":2853},[115],{"categories":2855},[201],{"categories":2857},[112],{"categories":2859},[115],{"categories":2861},[163],{"categories":2863},[],{"categories":2865},[115],{"categories":2867},[68],{"categories":2869},[160],{"categories":2871},[112],{"categories":2873},[106],{"categories":2875},[109],{"categories":2877},[68],{"categories":2879},[112],{"categories":2881},[],{"categories":2883},[115],{"categories":2885},[115],{"categories":2887},[112],{"categories":2889},[163],{"categories":2891},[],{"categories":2893},[133],{"categories":2895},[],{"categories":2897},[133],{"categories":2899},[112],{"categories":2901},[115],{"categories":2903},[115],{"categories":2905},[115],{"categories":2907},[],{"categories":2909},[133],{"categories":2911},[],{"categories":2913},[112],{"categories":2915},[112],{"categories":2917},[],{"categories":2919},[160],{"categories":2921},[115],{"categories":2923},[176],{"categories":2925},[106],{"categories":2927},[],{"categories":2929},[112],{"categories":2931},[],{"categories":2933},[106],{"categories":2935},[133],{"categories":2937},[68],{"categories":2939},[112],{"categories":2941},[112],{"categories":2943},[112],{"categories":2945},[68],{"categories":2947},[133],{"categories":2949},[160],{"categories":2951},[112],{"categories":2953},[112],{"categories":2955},[112],{"categories":2957},[133],{"categories":2959},[112],{"categories":2961},[133],{"categories":2963},[133],{"categories":2965},[115],{"categories":2967},[115],{"categories":2969},[68],{"categories":2971},[133],{"categories":2973},[115],{"categories":2975},[112],{"categories":2977},[68],{"categories":2979},[160],{"categories":2981},[],{"categories":2983},[115],{"categories":2985},[],{"categories":2987},[],{"categories":2989},[],{"categories":2991},[109],{"categories":2993},[112],{"categories":2995},[115],{"categories":2997},[106],{"categories":2999},[115],{"categories":3001},[176],{"categories":3003},[],{"categories":3005},[115],{"categories":3007},[],{"categories":3009},[106],{"categories":3011},[115],{"categories":3013},[],{"categories":3015},[115],{"categories":3017},[112],{"categories":3019},[133],{"categories":3021},[112],{"categories":3023},[115],{"categories":3025},[133],{"categories":3027},[115],{"categories":3029},[68],{"categories":3031},[160],{"categories":3033},[106],{"categories":3035},[],{"categories":3037},[115],{"categories":3039},[160],{"categories":3041},[201],{"categories":3043},[133],{"categories":3045},[112],{"categories":3047},[160],{"categories":3049},[106],{"categories":3051},[],{"categories":3053},[115],{"categories":3055},[112],{"categories":3057},[115],{"categories":3059},[112],{"categories":3061},[],{"categories":3063},[115],{"categories":3065},[118],{"categories":3067},[133],{"categories":3069},[115],{"categories":3071},[109],{"categories":3073},[],{"categories":3075},[112],{"categories":3077},[118],{"categories":3079},[112],{"categories":3081},[115],{"categories":3083},[133],{"categories":3085},[106],{"categories":3087},[201],{"categories":3089},[112],{"categories":3091},[112],{"categories":3093},[112],{"categories":3095},[133],{"categories":3097},[109],{"categories":3099},[112],{"categories":3101},[160],{"categories":3103},[133],{"categories":3105},[201],{"categories":3107},[112],{"categories":3109},[],{"categories":3111},[],{"categories":3113},[112],{"categories":3115},[201],{"categories":3117},[163],{"categories":3119},[115],{"categories":3121},[115],{"categories":3123},[133],{"categories":3125},[112],{"categories":3127},[106],{"categories":3129},[160],{"categories":3131},[115],{"categories":3133},[112],{"categories":3135},[176],{"categories":3137},[112],{"categories":3139},[115],{"categories":3141},[],{"categories":3143},[112],{"categories":3145},[112],{"categories":3147},[133],{"categories":3149},[106],{"categories":3151},[],{"categories":3153},[112],{"categories":3155},[112],{"categories":3157},[68],{"categories":3159},[160],{"categories":3161},[112,115],{"categories":3163},[176,109],{"categories":3165},[112],{"categories":3167},[],{"categories":3169},[115],{"categories":3171},[],{"categories":3173},[68],{"categories":3175},[112],{"categories":3177},[],{"categories":3179},[112],{"categories":3181},[133],{"categories":3183},[],{"categories":3185},[115],{"categories":3187},[112],{"categories":3189},[],{"categories":3191},[160],{"categories":3193},[115],{"categories":3195},[112],{"categories":3197},[106],{"categories":3199},[115],{"categories":3201},[112],{"categories":3203},[],{"categories":3205},[201],{"categories":3207},[176],{"categories":3209},[109],{"categories":3211},[109],{"categories":3213},[106],{"categories":3215},[106],{"categories":3217},[112],{"categories":3219},[115],{"categories":3221},[112],{"categories":3223},[112],{"categories":3225},[106],{"categories":3227},[112],{"categories":3229},[176],{"categories":3231},[133],{"categories":3233},[112],{"categories":3235},[115],{"categories":3237},[112],{"categories":3239},[],{"categories":3241},[68],{"categories":3243},[],{"categories":3245},[68],{"categories":3247},[115],{"categories":3249},[106],{"categories":3251},[],{"categories":3253},[201],{"categories":3255},[112],{"categories":3257},[],{"categories":3259},[133],{"categories":3261},[115],{"categories":3263},[68],{"categories":3265},[112],{"categories":3267},[115],{"categories":3269},[68],{"categories":3271},[115],{"categories":3273},[133],{"categories":3275},[106],{"categories":3277},[133],{"categories":3279},[68],{"categories":3281},[112],{"categories":3283},[160],{"categories":3285},[112],{"categories":3287},[112],{"categories":3289},[112],{"categories":3291},[112],{"categories":3293},[112],{"categories":3295},[115],{"categories":3297},[112],{"categories":3299},[115],{"categories":3301},[112],{"categories":3303},[106],{"categories":3305},[112],{"categories":3307},[115],{"categories":3309},[160],{"categories":3311},[106],{"categories":3313},[115],{"categories":3315},[160],{"categories":3317},[],{"categories":3319},[112],{"categories":3321},[112],{"categories":3323},[68],{"categories":3325},[],{"categories":3327},[115],{"categories":3329},[176],{"categories":3331},[112],{"categories":3333},[133],{"categories":3335},[176],{"categories":3337},[115],{"categories":3339},[109],{"categories":3341},[109],{"categories":3343},[112],{"categories":3345},[106],{"categories":3347},[],{"categories":3349},[115],{"categories":3351},[112],{"categories":3353},[],{"categories":3355},[106],{"categories":3357},[112],{"categories":3359},[115],{"categories":3361},[115],{"categories":3363},[],{"categories":3365},[68],{"categories":3367},[68],{"categories":3369},[176],{"categories":3371},[160],{"categories":3373},[],{"categories":3375},[112],{"categories":3377},[115],{"categories":3379},[106],{"categories":3381},[112],{"categories":3383},[68],{"categories":3385},[106],{"categories":3387},[133],{"categories":3389},[133],{"categories":3391},[],{"categories":3393},[133],{"categories":3395},[115],{"categories":3397},[160],{"categories":3399},[163],{"categories":3401},[112],{"categories":3403},[],{"categories":3405},[133],{"categories":3407},[68],{"categories":3409},[109],{"categories":3411},[112],{"categories":3413},[106],{"categories":3415},[201],{"categories":3417},[106],{"categories":3419},[],{"categories":3421},[],{"categories":3423},[133],{"categories":3425},[],{"categories":3427},[115],{"categories":3429},[115],{"categories":3431},[115],{"categories":3433},[],{"categories":3435},[112],{"categories":3437},[],{"categories":3439},[133],{"categories":3441},[106],{"categories":3443},[160],{"categories":3445},[112],{"categories":3447},[133],{"categories":3449},[133],{"categories":3451},[],{"categories":3453},[133],{"categories":3455},[106],{"categories":3457},[112],{"categories":3459},[],{"categories":3461},[115],{"categories":3463},[115],{"categories":3465},[106],{"categories":3467},[],{"categories":3469},[],{"categories":3471},[],{"categories":3473},[160],{"categories":3475},[115],{"categories":3477},[112],{"categories":3479},[],{"categories":3481},[],{"categories":3483},[],{"categories":3485},[160],{"categories":3487},[],{"categories":3489},[112],{"categories":3491},[106],{"categories":3493},[],{"categories":3495},[],{"categories":3497},[160],{"categories":3499},[112],{"categories":3501},[133],{"categories":3503},[],{"categories":3505},[176],{"categories":3507},[133],{"categories":3509},[176],{"categories":3511},[112],{"categories":3513},[],{"categories":3515},[],{"categories":3517},[115],{"categories":3519},[],{"categories":3521},[],{"categories":3523},[115],{"categories":3525},[112],{"categories":3527},[],{"categories":3529},[115],{"categories":3531},[133],{"categories":3533},[112],{"categories":3535},[176],{"categories":3537},[163],{"categories":3539},[115],{"categories":3541},[115],{"categories":3543},[],{"categories":3545},[],{"categories":3547},[],{"categories":3549},[133],{"categories":3551},[],{"categories":3553},[],{"categories":3555},[160],{"categories":3557},[106],{"categories":3559},[],{"categories":3561},[109],{"categories":3563},[176],{"categories":3565},[112],{"categories":3567},[68],{"categories":3569},[106],{"categories":3571},[163],{"categories":3573},[109],{"categories":3575},[68],{"categories":3577},[68],{"categories":3579},[],{"categories":3581},[],{"categories":3583},[115],{"categories":3585},[106],{"categories":3587},[160],{"categories":3589},[106],{"categories":3591},[115],{"categories":3593},[201],{"categories":3595},[112],{"categories":3597},[106],{"categories":3599},[115],{"categories":3601},[],{"categories":3603},[112],{"categories":3605},[133],{"categories":3607},[68],{"categories":3609},[],{"categories":3611},[160],{"categories":3613},[133],{"categories":3615},[106],{"categories":3617},[115],{"categories":3619},[112],{"categories":3621},[109],{"categories":3623},[115,201],{"categories":3625},[115],{"categories":3627},[68],{"categories":3629},[112],{"categories":3631},[112],{"categories":3633},[163],{"categories":3635},[176],{"categories":3637},[115],{"categories":3639},[],{"categories":3641},[115],{"categories":3643},[112],{"categories":3645},[109],{"categories":3647},[],{"categories":3649},[],{"categories":3651},[112],{"categories":3653},[163],{"categories":3655},[112],{"categories":3657},[],{"categories":3659},[133],{"categories":3661},[],{"categories":3663},[133],{"categories":3665},[106],{"categories":3667},[68],{"categories":3669},[112],{"categories":3671},[115],{"categories":3673},[112],{"categories":3675},[112],{"categories":3677},[176],{"categories":3679},[68],{"categories":3681},[],{"categories":3683},[133],{"categories":3685},[112],{"categories":3687},[],{"categories":3689},[112],{"categories":3691},[115],{"categories":3693},[112],{"categories":3695},[115],{"categories":3697},[112],{"categories":3699},[112],{"categories":3701},[112],{"categories":3703},[112],{"categories":3705},[109],{"categories":3707},[],{"categories":3709},[118],{"categories":3711},[133],{"categories":3713},[112],{"categories":3715},[],{"categories":3717},[68],{"categories":3719},[112],{"categories":3721},[112],{"categories":3723},[112],{"categories":3725},[115],{"categories":3727},[133],{"categories":3729},[112],{"categories":3731},[112],{"categories":3733},[112],{"categories":3735},[109],{"categories":3737},[115],{"categories":3739},[160],{"categories":3741},[],{"categories":3743},[163],{"categories":3745},[112],{"categories":3747},[],{"categories":3749},[133],{"categories":3751},[176],{"categories":3753},[],{"categories":3755},[],{"categories":3757},[133],{"categories":3759},[133],{"categories":3761},[176],{"categories":3763},[106],{"categories":3765},[115],{"categories":3767},[115],{"categories":3769},[112],{"categories":3771},[109],{"categories":3773},[],{"categories":3775},[],{"categories":3777},[133],{"categories":3779},[163],{"categories":3781},[68],{"categories":3783},[115],{"categories":3785},[160],{"categories":3787},[163],{"categories":3789},[163],{"categories":3791},[],{"categories":3793},[133],{"categories":3795},[112],{"categories":3797},[112],{"categories":3799},[68],{"categories":3801},[],{"categories":3803},[133],{"categories":3805},[133],{"categories":3807},[133],{"categories":3809},[],{"categories":3811},[115],{"categories":3813},[112],{"categories":3815},[],{"categories":3817},[106],{"categories":3819},[109],{"categories":3821},[],{"categories":3823},[112],{"categories":3825},[112],{"categories":3827},[],{"categories":3829},[68],{"categories":3831},[],{"categories":3833},[],{"categories":3835},[],{"categories":3837},[],{"categories":3839},[112],{"categories":3841},[133],{"categories":3843},[],{"categories":3845},[],{"categories":3847},[112],{"categories":3849},[112],{"categories":3851},[112],{"categories":3853},[163],{"categories":3855},[112],{"categories":3857},[163],{"categories":3859},[],{"categories":3861},[163],{"categories":3863},[163],{"categories":3865},[201],{"categories":3867},[115],{"categories":3869},[68],{"categories":3871},[],{"categories":3873},[],{"categories":3875},[163],{"categories":3877},[68],{"categories":3879},[68],{"categories":3881},[68],{"categories":3883},[],{"categories":3885},[106],{"categories":3887},[68],{"categories":3889},[68],{"categories":3891},[106],{"categories":3893},[68],{"categories":3895},[109],{"categories":3897},[68],{"categories":3899},[68],{"categories":3901},[68],{"categories":3903},[163],{"categories":3905},[133],{"categories":3907},[133],{"categories":3909},[112],{"categories":3911},[68],{"categories":3913},[163],{"categories":3915},[201],{"categories":3917},[163],{"categories":3919},[163],{"categories":3921},[163],{"categories":3923},[],{"categories":3925},[109],{"categories":3927},[],{"categories":3929},[201],{"categories":3931},[68],{"categories":3933},[68],{"categories":3935},[68],{"categories":3937},[115],{"categories":3939},[133,109],{"categories":3941},[163],{"categories":3943},[],{"categories":3945},[],{"categories":3947},[163],{"categories":3949},[],{"categories":3951},[163],{"categories":3953},[133],{"categories":3955},[115],{"categories":3957},[],{"categories":3959},[68],{"categories":3961},[112],{"categories":3963},[160],{"categories":3965},[],{"categories":3967},[112],{"categories":3969},[],{"categories":3971},[133],{"categories":3973},[106],{"categories":3975},[163],{"categories":3977},[],{"categories":3979},[68],{"categories":3981},[133],[3983,4194,4323,4399],{"id":3984,"title":3985,"ai":3986,"body":3992,"categories":4166,"created_at":69,"date_modified":69,"description":61,"extension":70,"faq":69,"featured":71,"kicker_label":69,"meta":4167,"navigation":84,"path":4180,"published_at":4181,"question":69,"scraped_at":4182,"seo":4183,"sitemap":4184,"source_id":4185,"source_name":91,"source_type":92,"source_url":4186,"stem":4187,"tags":4188,"thumbnail_url":69,"tldr":4191,"tweet":69,"unknown_tags":4192,"__hash__":4193},"summaries\u002Fsummaries\u002F741e4aa39ff81106-scale-compose-nav-sealed-routes-to-deep-links-summary.md","Scale Compose Nav: Sealed Routes to Deep Links",{"provider":7,"model":3987,"input_tokens":3988,"output_tokens":3989,"processing_time_ms":3990,"cost_usd":3991},"x-ai\u002Fgrok-4.1-fast",8253,1740,18352,0.00201375,{"type":14,"value":3993,"toc":4160},[3994,3998,4017,4044,4050,4054,4065,4084,4091,4095,4122,4133,4137],[17,3995,3997],{"id":3996},"build-predictable-navigation-with-sealed-routes-and-callbacks","Build Predictable Navigation with Sealed Routes and Callbacks",[22,3999,4000,4001,4004,4005,4008,4009,4012,4013,4016],{},"Treat navigation as graph movement where routes are centralized in a sealed class like ",[33,4002,4003],{},"sealed class AppScreen(val route: String)",", defining objects such as ",[33,4006,4007],{},"data object Home : AppScreen(\"home\")"," and ",[33,4010,4011],{},"data object UserDetails : AppScreen(\"user\u002F{userId}\") { fun createRoute(userId: Int): String = \"user\u002F$userId\" }",". This keeps route strings in one place, enables safe refactoring, and avoids ad-hoc string building like ",[33,4014,4015],{},"\"user\u002F${id}\""," scattered across files, which invites bugs.",[22,4018,4019,4020,4023,4024,4027,4028,4031,4032,4035,4036,4039,4040,4043],{},"In ",[33,4021,4022],{},"NavHost",", map routes to composables: ",[33,4025,4026],{},"composable(AppScreen.Home.route) { HomeScreen(onOpenUser = { userId -> navController.navigate(AppScreen.UserDetails.createRoute(userId)) }) }",". Screens receive callbacks like ",[33,4029,4030],{},"(Int) -> Unit"," instead of direct ",[33,4033,4034],{},"NavController"," access, making UI previewable, testable, and focused on rendering—not coordination. For arguments, use ",[33,4037,4038],{},"navArgument(\"userId\") { type = NavType.IntType }"," and extract via ",[33,4041,4042],{},"backStackEntry.arguments?.getInt(\"userId\")",", ensuring typed navigation without string parsing chaos.",[22,4045,4046,4047,4049],{},"This structure scales: ",[33,4048,4022],{}," is the connection source of truth, mimicking typed routing benefits without native support.",[17,4051,4053],{"id":4052},"master-back-stack-with-nav-options-for-real-flows","Master Back Stack with Nav Options for Real Flows",[22,4055,4056,4057,4060,4061,4064],{},"Control history explicitly to match product needs. After login, ",[33,4058,4059],{},"navController.navigate(AppScreen.Home.route) { popUpTo(AppScreen.Login.route) { inclusive = true } }"," removes login entirely—preventing back navigation to auth screens. Conditional starts like ",[33,4062,4063],{},"val startDestination = if (isLoggedIn) AppScreen.Home.route else AppScreen.Login.route"," handle auth state.",[22,4066,4067,4068,4071,4072,4075,4076,4079,4080,4083],{},"Prevent duplicates on re-taps with ",[33,4069,4070],{},"launchSingleTop = true"," in ",[33,4073,4074],{},"navigate()"," calls. For programmatic flows post-API, combine: ",[33,4077,4078],{},"popUpTo"," clears unwanted history, ",[33,4081,4082],{},"inclusive = true"," prunes fully, avoiding ghost screens.",[22,4085,4086,4087,4090],{},"Auth example: Nested ",[33,4088,4089],{},"LoginScreen(onLoginSuccess = { ... })"," triggers stack-clearing nav, landing users in main app cleanly.",[17,4092,4094],{"id":4093},"polish-bottom-nav-and-nested-graphs-for-app-like-feel","Polish Bottom Nav and Nested Graphs for App-Like Feel",[22,4096,4097,4098,4101,4102,4105,4106,4109,4110,4113,4114,4117,4118,4121],{},"Bottom tabs expect independent sections with state restoration. Use ",[33,4099,4100],{},"Scaffold"," with ",[33,4103,4104],{},"BottomBar",": track ",[33,4107,4108],{},"currentDestination"," via ",[33,4111,4112],{},"navController.currentBackStackEntryAsState()",", select via ",[33,4115,4116],{},"hierarchy.any { it.route == item.route }",". On tab click: ",[33,4119,4120],{},"navigate(item.route) { popUpTo(navController.graph.startDestinationId) { saveState = true }; launchSingleTop = true; restoreState = true }",". This caps stack growth, saves\u002Frestores tab state, and skips duplicates—making switches feel native.",[22,4123,4124,4125,4128,4129,4132],{},"Group related screens in nested graphs: ",[33,4126,4127],{},"NavHost(route = \"root_graph\", startDestination = \"auth_graph\") { navigation(route = \"auth_graph\", startDestination = \"login\") { composable(\"login\") { ... } } }",". Exit auth: ",[33,4130,4131],{},"navigate(\"main_graph\") { popUpTo(\"auth_graph\") { inclusive = true } }",". Graphs mirror product structure (auth vs. main), simplifying complex apps with 15+ screens.",[17,4134,4136],{"id":4135},"enable-deep-links-as-graph-entries","Enable Deep Links as Graph Entries",[22,4138,4139,4140,4143,4144,4147,4148,4151,4152,4155,4156,4159],{},"Deep links are routes with URIs: for ",[33,4141,4142],{},"ArticleDetails : AppScreen(\"article\u002F{articleId}\")",", add ",[33,4145,4146],{},"deepLinks = listOf(navDeepLink { uriPattern = \"myapp:\u002F\u002Farticle\u002F{articleId}\" })"," alongside ",[33,4149,4150],{},"navArgument(\"articleId\") { type = NavType.StringType }",". ",[33,4153,4154],{},"myapp:\u002F\u002Farticle\u002Fabc123"," opens directly, extracting ",[33,4157,4158],{},"articleId"," via backstack—handling notifications or marketing links without custom parsing.",{"title":61,"searchDepth":62,"depth":62,"links":4161},[4162,4163,4164,4165],{"id":3996,"depth":62,"text":3997},{"id":4052,"depth":62,"text":4053},{"id":4093,"depth":62,"text":4094},{"id":4135,"depth":62,"text":4136},[68],{"content_references":4168,"triage":4178},[4169,4175],{"type":4170,"title":4171,"author":4172,"url":4173,"context":4174},"other","SwiftUI Navigation in iOS: A Practical Guide","Sanjay Nelagadde","https:\u002F\u002Fgitconnected\u002Fswiftui-navigation-in-ios-a-practical-guide-2a4820971681","mentioned",{"type":4170,"title":4176,"author":4172,"url":4177,"context":4174},"SwiftUI State in iOS: A Practical Guide","https:\u002F\u002Fgitconnected\u002Fswiftui-state-in-ios-a-practical-guide-993a70794cdd",{"relevance":80,"novelty":81,"quality":80,"actionability":80,"composite":82,"reasoning":4179},"Category: Software Engineering. The article provides practical patterns for managing navigation in Android apps using Jetpack Compose, addressing a common pain point for developers in maintaining clean and predictable navigation structures. It includes specific code examples and techniques that can be directly applied to improve navigation in real applications.","\u002Fsummaries\u002F741e4aa39ff81106-scale-compose-nav-sealed-routes-to-deep-links-summary","2026-04-13 15:09:11","2026-04-14 14:37:36",{"title":3985,"description":61},{"loc":4180},"741e4aa39ff81106","https:\u002F\u002Flevelup.gitconnected.com\u002Fnavigation-in-android-jetpack-compose-a-practical-guide-4d8037b07a87?source=rss----5517fd7b58a6---4","summaries\u002F741e4aa39ff81106-scale-compose-nav-sealed-routes-to-deep-links-summary",[4189,4190,96,97],"software-engineering","dev-productivity","Centralize routes in sealed classes, pass nav callbacks to screens, and use popUpTo\u002FlaunchSingleTop for back stack control—patterns that prevent mess in real apps with auth, tabs, and flows.",[4189,4190,96,97],"68Oc38Fr7dSC13jmFDXSFn-0Y3plO0DjvrJ8kEII66s",{"id":4195,"title":4196,"ai":4197,"body":4202,"categories":4300,"created_at":69,"date_modified":69,"description":61,"extension":70,"faq":69,"featured":71,"kicker_label":69,"meta":4301,"navigation":84,"path":4311,"published_at":4312,"question":69,"scraped_at":4313,"seo":4314,"sitemap":4315,"source_id":4316,"source_name":91,"source_type":92,"source_url":4317,"stem":4318,"tags":4319,"thumbnail_url":69,"tldr":4320,"tweet":69,"unknown_tags":4321,"__hash__":4322},"summaries\u002Fsummaries\u002Fc7a9668d4d989623-scale-compose-navigation-beyond-toy-apps-summary.md","Scale Compose Navigation Beyond Toy Apps",{"provider":7,"model":3987,"input_tokens":4198,"output_tokens":4199,"processing_time_ms":4200,"cost_usd":4201},8280,1527,17058,0.002397,{"type":14,"value":4203,"toc":4295},[4204,4208,4222,4233,4235,4254,4264,4268,4282],[17,4205,4207],{"id":4206},"centralize-routes-and-decouple-screens-for-maintainability","Centralize Routes and Decouple Screens for Maintainability",[22,4209,4210,4211,4213,4214,4217,4218,4221],{},"Treat navigation as graph movement where routes are structured strings defined in a single sealed class like ",[33,4212,4003],{},", with objects for simple screens (",[33,4215,4216],{},"Home : AppScreen(\"home\")",") and data classes for args (",[33,4219,4220],{},"UserDetails : AppScreen(\"user\u002F{userId}\") { fun createRoute(userId: Int) = \"user\u002F$userId\" }","). This prevents scattered strings, eases renames, and keeps code refactor-safe.",[22,4223,4224,4225,4228,4229,4232],{},"In NavHost, map routes to composables with ",[33,4226,4227],{},"composable(route, arguments = listOf(navArgument(\"userId\") { type = NavType.IntType })) { backStackEntry -> val userId = backStackEntry.arguments?.getInt(\"userId\") }",". Screens receive typed callbacks like ",[33,4230,4231],{},"onOpenUser: (Int) -> Unit"," instead of direct NavController access, making UI previewable, testable, and focused on rendering—not coordination. This scales to 15+ screens by keeping NavHost as the connection source of truth.",[17,4234,4053],{"id":4052},[22,4236,4237,4238,4241,4242,4245,4246,4249,4250,4253],{},"Forward nav is simple (",[33,4239,4240],{},"navController.navigate(route)","), but control back stack to avoid ghosts: after login, ",[33,4243,4244],{},"navigate(\"home\") { popUpTo(\"login\") { inclusive = true } }"," removes login entirely. For auth flows, set dynamic ",[33,4247,4248],{},"startDestination"," based on ",[33,4251,4252],{},"isLoggedIn"," state.",[22,4255,4256,4257,4260,4261,4263],{},"Prevent duplicates on retaps with ",[33,4258,4259],{},"navigate(route) { launchSingleTop = true }",". In bottom nav, combine options in tab clicks: ",[33,4262,4120],{},". This pops to root on switches (no growing stack), saves\u002Frestores tab state, and skips duplicates—making tabs feel like independent sections with expected back behavior and polished UX.",[17,4265,4267],{"id":4266},"group-flows-with-nested-graphs-and-handle-deep-links","Group Flows with Nested Graphs and Handle Deep Links",[22,4269,4270,4271,4274,4275,4278,4279,4281],{},"For related screens (login\u002Fsignup\u002Fforgot-password), use nested ",[33,4272,4273],{},"navigation(route = \"auth_graph\", startDestination = \"login\") { composable(...) }"," inside root NavHost (",[33,4276,4277],{},"route = \"root_graph\", startDestination = \"auth_graph\"","). Exit flows cleanly: ",[33,4280,4131],{},". This mirrors product structure (auth vs. main), simplifies complex graphs, and clarifies transitions.",[22,4283,4284,4285,4288,4289,4291,4292,4294],{},"Deep links align with routes: ",[33,4286,4287],{},"composable(..., deepLinks = listOf(navDeepLink { uriPattern = \"myapp:\u002F\u002Farticle\u002F{articleId}\" }))",". A link like ",[33,4290,4154],{}," lands directly, pulling ",[33,4293,4158],{}," from args. Centralize creation helpers ensure patterns match, avoiding maintenance pain. Avoid passing full objects—stick to primitives\u002Ftyped args for reliability over serialization hacks.",{"title":61,"searchDepth":62,"depth":62,"links":4296},[4297,4298,4299],{"id":4206,"depth":62,"text":4207},{"id":4052,"depth":62,"text":4053},{"id":4266,"depth":62,"text":4267},[68],{"content_references":4302,"triage":4307},[4303,4305],{"type":4170,"title":4171,"author":4172,"url":4304,"context":4174},"https:\u002F\u002Fmedium.com\u002Fgitconnected\u002Fswiftui-navigation-in-ios-a-practical-guide-2a4820971681",{"type":4170,"title":4176,"author":4172,"url":4306,"context":4174},"https:\u002F\u002Fmedium.com\u002Fgitconnected\u002Fswiftui-state-in-ios-a-practical-guide-993a70794cdd",{"relevance":4308,"novelty":81,"quality":80,"actionability":80,"composite":4309,"reasoning":4310},5,4.15,"Category: Software Engineering. The article provides a detailed guide on structuring navigation in Jetpack Compose, addressing practical concerns for developers building scalable applications. It includes specific code examples and techniques that can be directly applied to improve navigation in Android apps.","\u002Fsummaries\u002Fc7a9668d4d989623-scale-compose-navigation-beyond-toy-apps-summary","2026-04-13 15:09:12","2026-04-13 17:52:57",{"title":4196,"description":61},{"loc":4311},"c7a9668d4d989623","https:\u002F\u002Fmedium.com\u002Fgitconnected\u002Fnavigation-in-android-jetpack-compose-a-practical-guide-4d8037b07a87?source=rss----5517fd7b58a6---4","summaries\u002Fc7a9668d4d989623-scale-compose-navigation-beyond-toy-apps-summary",[4189,4190,97],"Centralize routes in sealed classes with helper functions, pass nav callbacks to screens, and use popUpTo(inclusive=true), launchSingleTop=true, restoreState=true for clean back stacks in auth flows, bottom tabs, nested graphs, and deep links.",[4189,4190,97],"l1ZQQNKHLqOe112XJRO02bG7K_AqATJCyylqZfO6R2Q",{"id":4324,"title":4325,"ai":4326,"body":4331,"categories":4380,"created_at":69,"date_modified":69,"description":61,"extension":70,"faq":69,"featured":71,"kicker_label":69,"meta":4381,"navigation":84,"path":4385,"published_at":4386,"question":69,"scraped_at":4387,"seo":4388,"sitemap":4389,"source_id":4390,"source_name":91,"source_type":92,"source_url":4391,"stem":4392,"tags":4393,"thumbnail_url":69,"tldr":4396,"tweet":69,"unknown_tags":4397,"__hash__":4398},"summaries\u002Fsummaries\u002F0823ad95abd83173-why-micro-benchmarks-often-fail-to-predict-product-summary.md","Why Micro-Benchmarks Often Fail to Predict Production Performance",{"provider":7,"model":8,"input_tokens":4327,"output_tokens":4328,"processing_time_ms":4329,"cost_usd":4330},3931,439,3022,0.00164125,{"type":14,"value":4332,"toc":4375},[4333,4337,4340,4344,4347,4351,4354],[17,4334,4336],{"id":4335},"the-illusion-of-benchmark-success","The Illusion of Benchmark Success",[22,4338,4339],{},"Performance optimization often suffers from a disconnect between synthetic testing and real-world execution. In this case, a team observed a 61% reduction in latency and increased throughput in their benchmark suite, leading to a confident deployment. However, production metrics (specifically p99 latency) remained unchanged post-deployment. The optimization was technically functioning as designed, but the performance gains were entirely localized to the benchmark environment.",[17,4341,4343],{"id":4342},"the-cache-locality-trap","The Cache Locality Trap",[22,4345,4346],{},"The core issue was a fundamental difference in cache state. The benchmark suite was testing against 'warm' cache data, where the optimized path was consistently hitting memory already present in the CPU or application cache. In contrast, the production environment was hitting a 'cold' cache for that specific code path. Because the optimization did not account for the overhead of cache misses or the reality of data access patterns in a high-concurrency production environment, the gains were effectively erased by the time the code reached the end-user.",[17,4348,4350],{"id":4349},"rethinking-performance-engineering","Rethinking Performance Engineering",[22,4352,4353],{},"This experience highlights that benchmarks are often measuring the efficiency of an algorithm in isolation rather than the performance of a system in context. To avoid 'lying' benchmarks, engineers must:",[45,4355,4356,4363,4369],{},[48,4357,4358,4362],{},[4359,4360,4361],"strong",{},"Simulate Production State:"," Ensure benchmarks account for cold-start scenarios and realistic data distribution.",[48,4364,4365,4368],{},[4359,4366,4367],{},"Prioritize System-Level Metrics:"," Do not treat micro-benchmark results as a proxy for end-to-end user experience.",[48,4370,4371,4374],{},[4359,4372,4373],{},"Validate with Observability:"," Always verify performance improvements against production telemetry rather than relying solely on pre-deployment synthetic tests.",{"title":61,"searchDepth":62,"depth":62,"links":4376},[4377,4378,4379],{"id":4335,"depth":62,"text":4336},{"id":4342,"depth":62,"text":4343},{"id":4349,"depth":62,"text":4350},[68],{"content_references":4382,"triage":4383},[],{"relevance":80,"novelty":81,"quality":80,"actionability":80,"composite":82,"reasoning":4384},"Category: Software Engineering. The article addresses a specific pain point for developers regarding the disconnect between benchmark results and real-world performance, which is crucial for building reliable AI-powered products. It provides actionable insights on how to improve benchmarking practices, such as simulating production states and validating with observability.","\u002Fsummaries\u002F0823ad95abd83173-why-micro-benchmarks-often-fail-to-predict-product-summary","2026-05-20 17:44:22","2026-05-20 19:00:28",{"title":4325,"description":61},{"loc":4385},"0823ad95abd83173","https:\u002F\u002Flevelup.gitconnected.com\u002Fthe-benchmark-that-was-lying-to-us-and-how-we-found-out-54931fbf4386?source=rss----5517fd7b58a6---4","summaries\u002F0823ad95abd83173-why-micro-benchmarks-often-fail-to-predict-product-summary",[99,4394,4189,4395],"benchmarking","latency","Benchmarks often report false improvements because they measure performance under ideal conditions—like warm caches—that rarely exist in real-world production environments.",[99,4394,4189,4395],"V7xbDPlmcnIXMptfgIJrr-UlbR_4K8gvAbWKXn8jjWU",{"id":4400,"title":4401,"ai":4402,"body":4407,"categories":4452,"created_at":69,"date_modified":69,"description":61,"extension":70,"faq":69,"featured":71,"kicker_label":69,"meta":4453,"navigation":84,"path":4466,"published_at":4467,"question":69,"scraped_at":4468,"seo":4469,"sitemap":4470,"source_id":4471,"source_name":4472,"source_type":92,"source_url":4473,"stem":4474,"tags":4475,"thumbnail_url":69,"tldr":4479,"tweet":69,"unknown_tags":4480,"__hash__":4481},"summaries\u002Fsummaries\u002F2f2a6691c3b01ef7-google-ai-studio-adds-native-android-app-generatio-summary.md","Google AI Studio Adds Native Android App Generation",{"provider":7,"model":8,"input_tokens":4403,"output_tokens":4404,"processing_time_ms":4405,"cost_usd":4406},6243,552,2884,0.00238875,{"type":14,"value":4408,"toc":4447},[4409,4413,4416,4420,4423,4437,4440,4444],[17,4410,4412],{"id":4411},"ai-powered-android-development","AI-Powered Android Development",[22,4414,4415],{},"Google has integrated native Android app creation into its web-based AI Studio, allowing users to build applications through natural language prompts. This tool targets both seasoned developers seeking rapid prototyping and non-technical creators. The generated apps are built using Kotlin and the Jetpack Compose toolkit, with support for hardware-enabled features like Bluetooth, NFC, and GPS.",[17,4417,4419],{"id":4418},"workflow-and-deployment","Workflow and Deployment",[22,4421,4422],{},"The development environment includes an embedded Android Emulator for real-time interaction within the browser. Users can deploy apps directly to physical Android devices via USB using the Android Debug Bridge (adb). For more complex projects, AI Studio supports:",[45,4424,4425,4431],{},[48,4426,4427,4430],{},[4359,4428,4429],{},"Internal Testing:"," Automatic creation of app records and bundles for the Google Play Console.",[48,4432,4433,4436],{},[4359,4434,4435],{},"Professional Handoff:"," Exporting projects as zip files to GitHub for further development in the desktop version of Android Studio.",[22,4438,4439],{},"While current capabilities are focused on personal utilities and simple social experiences, Google plans to expand functionality to include Firebase integrations (such as Firestore and Auth) and features for sharing apps within private networks.",[17,4441,4443],{"id":4442},"ai-driven-app-discovery","AI-Driven App Discovery",[22,4445,4446],{},"Beyond creation, Google is integrating AI into the Play Store and Gemini to improve app discovery. A new \"Ask Play\" overlay allows users to find apps through conversational queries. Furthermore, Gemini will begin surfacing relevant Android apps directly within user conversations, linking users to specific content—such as movies, TV shows, or sports streams—within a developer's application.",{"title":61,"searchDepth":62,"depth":62,"links":4448},[4449,4450,4451],{"id":4411,"depth":62,"text":4412},{"id":4418,"depth":62,"text":4419},{"id":4442,"depth":62,"text":4443},[112],{"content_references":4454,"triage":4464},[4455,4458,4461],{"type":75,"title":4456,"url":4457,"context":4174},"Google AI Studio","https:\u002F\u002Faistudio.google.com\u002F",{"type":75,"title":4459,"url":4460,"context":4174},"Android Studio","https:\u002F\u002Fdeveloper.android.com\u002Fstudio\u002Fpreview",{"type":75,"title":4462,"url":4463,"context":4174},"Google Play Console","https:\u002F\u002Fdeveloper.android.com\u002Fdistribute\u002Fconsole",{"relevance":80,"novelty":81,"quality":80,"actionability":80,"composite":82,"reasoning":4465},"Category: AI Automation. The article discusses a new tool that allows users to build Android apps using AI, which directly addresses the needs of developers looking for practical AI applications in product development. It provides specific features like natural language prompts and integrated deployment tools, making it actionable for the audience.","\u002Fsummaries\u002F2f2a6691c3b01ef7-google-ai-studio-adds-native-android-app-generatio-summary","2026-05-19 17:45:00","2026-05-19 19:00:39",{"title":4401,"description":61},{"loc":4466},"2f2a6691c3b01ef7","TechCrunch — AI","https:\u002F\u002Ftechcrunch.com\u002F2026\u002F05\u002F19\u002Fgoogles-ai-studio-now-lets-anyone-build-android-apps-in-minutes\u002F","summaries\u002F2f2a6691c3b01ef7-google-ai-studio-adds-native-android-app-generatio-summary",[4476,4477,4478,96],"ai-tools","coding","automation","Google AI Studio now enables users to build Android apps via natural language prompts, using Kotlin and Jetpack Compose, with integrated browser-based emulation and deployment tools.",[96],"qnIYYV5dVQWuhdH9IOjJx9sn-fOS3qMVHYHaKKrz_IM"]