[{"data":1,"prerenderedAt":135},["ShallowReactive",2],{"tutorial-10-":3},{"items":4,"meta":131},[5,25,38,52,66,79,93,106,119],{"id":6,"title":7,"slug":8,"excerpt":9,"cover_image":10,"cover_remote_url":11,"cover_credit":12,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":20,"category":21},9,"Gestione dei temi in Flutter con ThemeData e dark mode dinamica","gestione-dei-temi-in-flutter-con-themedata-e-dark-mode-dinamica","Impara a creare temi chiaro e scuro in Flutter, a centralizzarli con ThemeData e a far cambiare il tema dinamicamente all'utente con un toggle.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F3b6da092-97ac-410b-b71e-aead124a724c.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1565130159861-abb854d2bba1?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTk2MzF8&ixlib=rb-4.1.0&q=80&w=1080",{"name":13,"author_url":14,"photo_url":15},"Duncan Kidd","https:\u002F\u002Funsplash.com\u002F@we_the_royal","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-wooden-bench-sitting-on-top-of-a-tiled-floor-LM43DWuTCP0","intermediate",35,"3.x","published","2026-06-13T04:30:47+00:00",{"id":22,"name":23,"slug":24},1,"Guide","guide",{"id":26,"title":27,"slug":28,"excerpt":29,"cover_image":30,"cover_remote_url":31,"cover_credit":32,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":36,"category":37},8,"Creare layout responsive in Flutter con LayoutBuilder e MediaQuery","creare-layout-responsive-in-flutter-con-layoutbuilder-e-mediaquery","Impara a costruire interfacce Flutter che si adattano a smartphone, tablet e desktop usando LayoutBuilder, MediaQuery e widget responsive.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F30afb906-1fee-4cba-b573-7688bd68b558.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1650273545847-b171427e0b37?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU5MDV8&ixlib=rb-4.1.0&q=80&w=1080",{"name":33,"author_url":34,"photo_url":35},"Natalia Vargas","https:\u002F\u002Funsplash.com\u002F@natiiva","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-close-up-of-a-building-with-a-sky-background-q3YOCxdO6Kg","2026-06-12T04:30:49+00:00",{"id":22,"name":23,"slug":24},{"id":39,"title":40,"slug":41,"excerpt":42,"cover_image":43,"cover_remote_url":44,"cover_credit":45,"difficulty":16,"estimated_minutes":49,"flutter_version":18,"status":19,"published_at":50,"category":51},7,"Salvare dati strutturati in Flutter con il database SQLite e sqflite","salvare-dati-strutturati-in-flutter-con-il-database-sqlite-e-sqflite","Impara a integrare un database locale SQLite nelle tue app Flutter usando il pacchetto sqflite: creazione tabelle, operazioni CRUD e pattern repository.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002Fbc61d585-2da0-48ca-a6f7-6e9691c6e2c4.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1651304395894-842cb40adbb8?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU5MDF8&ixlib=rb-4.1.0&q=80&w=1080",{"name":46,"author_url":47,"photo_url":48},"YL Lai","https:\u002F\u002Funsplash.com\u002F@amyno35","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-close-up-of-a-wooden-surface-Gb7-efQCeUU",40,"2026-06-11T04:30:39+00:00",{"id":22,"name":23,"slug":24},{"id":53,"title":54,"slug":55,"excerpt":56,"cover_image":57,"cover_remote_url":58,"cover_credit":59,"difficulty":63,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":64,"category":65},6,"Gestire i form in Flutter con Form e TextFormField: validazione completa","gestire-i-form-in-flutter-con-form-e-textformfield-validazione-completa","Impara a creare un form di registrazione robusto in Flutter usando Form, TextFormField, GlobalKey e validatori personalizzati per gestire input e validazione.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F00decf3a-d7b3-49d9-8567-50e12e5a9a03.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1580152343511-80ef2e53f1c4?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4OTZ8&ixlib=rb-4.1.0&q=80&w=1080",{"name":60,"author_url":61,"photo_url":62},"Hannah Busing","https:\u002F\u002Funsplash.com\u002F@hannahbusing","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fwoman-in-blue-and-white-long-sleeve-shirt-holding-white-book-2IqKGn0pee4","beginner","2026-06-10T04:30:37+00:00",{"id":22,"name":23,"slug":24},{"id":67,"title":68,"slug":69,"excerpt":70,"cover_image":71,"cover_remote_url":72,"cover_credit":73,"difficulty":63,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":77,"category":78},5,"Animazioni implicite in Flutter con AnimatedContainer","animazioni-implicite-in-flutter-con-animatedcontainer","Impara a creare animazioni fluide e accattivanti in Flutter usando i widget di animazione impliciti come AnimatedContainer, AnimatedOpacity e TweenAnimationBuilder, senza gestire manualmente i controller.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F55020f64-fe77-4b50-8939-cea421a613da.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1612744204774-5d0573587ee1?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4OTN8&ixlib=rb-4.1.0&q=80&w=1080",{"name":74,"author_url":75,"photo_url":76},"Julissa Santana","https:\u002F\u002Funsplash.com\u002F@julissasantana","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fblack-textile-on-white-textile-2vN6LnDpn4Y","2026-06-09T06:30:54+00:00",{"id":22,"name":23,"slug":24},{"id":80,"title":81,"slug":82,"excerpt":83,"cover_image":84,"cover_remote_url":85,"cover_credit":86,"difficulty":63,"estimated_minutes":90,"flutter_version":18,"status":19,"published_at":91,"category":92},4,"Persistenza dei dati locali in Flutter con shared_preferences","persistenza-dei-dati-locali-in-flutter-con-shared-preferences","Impara a salvare e leggere dati semplici come impostazioni utente e preferenze direttamente sul dispositivo usando il pacchetto shared_preferences.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F02716908-da7f-486d-94f9-b1b3c53d0e18.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1773291933696-06949474d59b?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4OTB8&ixlib=rb-4.1.0&q=80&w=1080",{"name":87,"author_url":88,"photo_url":89},"Declan Sun","https:\u002F\u002Funsplash.com\u002F@declansun","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fmuji-diner-restaurant-interior-with-shelves-of-dishes-1mDIa98jCak",25,"2026-06-09T06:25:53+00:00",{"id":22,"name":23,"slug":24},{"id":94,"title":95,"slug":96,"excerpt":97,"cover_image":98,"cover_remote_url":99,"cover_credit":100,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":104,"category":105},3,"Navigazione tra schermate in Flutter con go_router","navigazione-tra-schermate-in-flutter-con-go-router","Impara a gestire la navigazione dichiarativa in Flutter usando go_router: rotte, parametri, redirect e gestione degli errori in modo semplice e scalabile.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F832f2838-f13e-45e4-9888-92976f98d588.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1661781473867-dcac073be486?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4ODd8&ixlib=rb-4.1.0&q=80&w=1080",{"name":101,"author_url":102,"photo_url":103},"Ridger","https:\u002F\u002Funsplash.com\u002F@ridger","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-road-with-a-sign-on-it-naGbVGwAhWk","2026-06-09T06:23:44+00:00",{"id":22,"name":23,"slug":24},{"id":107,"title":108,"slug":109,"excerpt":110,"cover_image":111,"cover_remote_url":112,"cover_credit":113,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":117,"category":118},2,"Gestire lo stato in Flutter con Provider: guida pratica","gestire-lo-stato-in-flutter-con-provider-guida-pratica","Impara a usare il pacchetto Provider per gestire lo stato della tua app Flutter in modo pulito e scalabile, separando la logica dalla UI.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F1e8cc893-9ea0-488f-ab62-a1670d287134.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1748557438040-1fd82928f2ad?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4ODV8&ixlib=rb-4.1.0&q=80&w=1080",{"name":114,"author_url":115,"photo_url":116},"Riccardo Bernucci","https:\u002F\u002Funsplash.com\u002F@new_ra","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fwater-flows-from-a-small-hole-in-the-rock-J-rU8qNnLCg","2026-06-08T10:14:54+00:00",{"id":22,"name":23,"slug":24},{"id":22,"title":120,"slug":121,"excerpt":122,"cover_image":123,"cover_remote_url":124,"cover_credit":125,"difficulty":16,"estimated_minutes":17,"flutter_version":18,"status":19,"published_at":129,"category":130},"Effettuare chiamate HTTP REST in Flutter con il pacchetto http","effettuare-chiamate-http-rest-in-flutter-con-il-pacchetto-http","Impara a consumare una API REST in Flutter: configura il pacchetto http, esegui richieste GET, modella i dati in classi Dart e mostra i risultati con FutureBuilder.","https:\u002F\u002Fflutter.it\u002Fstorage\u002Ftutorials\u002F94f6b4b9-9f9f-412c-9a44-ac99479d91d4.jpg","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1681321570365-df53da7dbaa2?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w5NzA2NTJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODczMTU4ODF8&ixlib=rb-4.1.0&q=80&w=1080",{"name":126,"author_url":127,"photo_url":128},"2H Media","https:\u002F\u002Funsplash.com\u002F@2hmedia","https:\u002F\u002Funsplash.com\u002Fphotos\u002Fa-person-holding-a-blue-and-white-object-in-their-hand-HAWbM1VDBQI","2026-06-06T00:00:00+00:00",{"id":22,"name":23,"slug":24},["Reactive",132],{"current_page":133,"last_page":133,"per_page":6,"total":134},10,90,1789120581613]