[{"data":1,"prerenderedAt":126},["ShallowReactive",2],{"page:\u002Farticles\u002Fintroducing-xflow":3},{"id":4,"title":5,"author":6,"body":10,"cover":112,"date":113,"description":114,"extension":115,"head":116,"layout":119,"meta":120,"navigation":121,"path":122,"seo":123,"stem":124,"__hash__":125},"pages\u002Farticles\u002F44.introducing-xflow.md","Introducing XFlow",{"name":7,"avatarUrl":8,"link":9},"Likun Cai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F103620968?v=4","https:\u002F\u002Fgithub.com\u002FAlchemist-Aloha",{"type":11,"value":12,"toc":109},"minimark",[13,17,21,24,29,32,88,91,94,105],[14,15,5],"h1",{"id":16},"introducing-xflow",[18,19,20],"p",{},"XFlow is a Flutter Android client that reshapes media from Twitter\u002FX into a full-screen, vertically scrolling feed. It builds on authentication and data-layer work from Squawker while focusing its own interface on videos, images, profiles, subscriptions, and fast playback.",[18,22,23],{},"The player pool pre-caches upcoming videos so the next swipe can start with less buffering. API responses and media use dedicated caches, profile pages expose lazy media grids, and feed position is preserved while moving between tabs or opening a creator's profile.",[25,26,28],"h2",{"id":27},"run-from-source","Run from source",[18,30,31],{},"With Flutter 3 and the Android toolchain installed:",[33,34,39],"pre",{"className":35,"code":36,"language":37,"meta":38,"style":38},"language-bash shiki shiki-themes github-light github-dark","git clone https:\u002F\u002Fgithub.com\u002FAlchemist-Aloha\u002Fxflow.git\ncd xflow\nflutter pub get\nflutter run\n","bash","",[40,41,42,58,68,80],"code",{"__ignoreMap":38},[43,44,47,51,55],"span",{"class":45,"line":46},"line",1,[43,48,50],{"class":49},"sScJk","git",[43,52,54],{"class":53},"sZZnC"," clone",[43,56,57],{"class":53}," https:\u002F\u002Fgithub.com\u002FAlchemist-Aloha\u002Fxflow.git\n",[43,59,61,65],{"class":45,"line":60},2,[43,62,64],{"class":63},"sj4cs","cd",[43,66,67],{"class":53}," xflow\n",[43,69,71,74,77],{"class":45,"line":70},3,[43,72,73],{"class":49},"flutter",[43,75,76],{"class":53}," pub",[43,78,79],{"class":53}," get\n",[43,81,83,85],{"class":45,"line":82},4,[43,84,73],{"class":49},[43,86,87],{"class":53}," run\n",[18,89,90],{},"The source is organized by feature: authentication, feed, player, profile, subscriptions, and settings sit beside shared database and navigation infrastructure. The repository also documents an alternative feed path based on the community Twitter Internal API documentation.",[18,92,93],{},"XFlow depends on unofficial access patterns for a platform whose internal APIs and policies can change without notice. Login or feed breakage may therefore be an upstream compatibility issue rather than a local player problem. Review the current code and issues before entering an account.",[18,95,96,97,104],{},"Visit the ",[98,99,103],"a",{"href":100,"rel":101},"https:\u002F\u002Fgithub.com\u002FAlchemist-Aloha\u002Fxflow",[102],"nofollow","XFlow repository"," for the latest source, license, and known issues.",[106,107,108],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":38,"searchDepth":60,"depth":60,"links":110},[111],{"id":27,"depth":60,"text":28},"\u002Farticles\u002Fxflow-cover.webp","2026-08-12T00:44:00.000Z","Browse video and image posts from X in a full-screen vertical feed with pre-caching, subscriptions, profiles, and persistent position.","md",{"title":117},{"Introducing XFlow":118},"A Media-First Flutter Client for X","page",{},true,"\u002Farticles\u002Fintroducing-xflow",{"title":5,"description":114},"articles\u002F44.introducing-xflow","NKK8VAX9kUYsakqsAGhRqkuK-lFrafATEL5VfYpBqXU",1786980373675]