Terminals seem like the very lowest common denominator for software platforms. They have to work over SSH. They only show text. You can't do much with them. Or can you? Will McGugan and team have been building Textual (based on Rich) which looks more like an animated web app than a terminal app. And he has learned a bunch of lessons trying to maximize terminal based apps. He's here to share his 7 lessons he's learned while building a modern TUI (text user interface) framework.<br/>
<br/>
<strong>Links from the show</strong><br/>
<br/>
<div><b>Will McGugan</b>: <a href="https://twitter.com/willmcgugan" target="_blank" rel="noopener">@willmcgugan</a><br/>
<b>7 things I've learned building a modern TUI framework post</b>: <a href="https://www.textualize.io/blog/posts/7-things-about-terminals" target="_blank" rel="noopener">textualize.io</a><br/>
<b>Prior Talk Python Episode</b>: <a href="https://talkpython.fm/episodes/show/336/terminal-magic-with-rich-and-textual" target="_blank" rel="noopener">talkpython.fm</a><br/>
<b>Textualize</b>: <a href="https://www.textualize.io" target="_blank" rel="noopener">textualize.io</a><br/>
<b>Kitty terminal</b>: <a href="https://sw.kovidgoyal.net/kitty/" target="_blank" rel="noopener">sw.kovidgoyal.net</a><br/>
<b>Pydantic Immutability</b>: <a href="https://pydantic-docs.helpmanual.io/usage/models/#faux-immutability" target="_blank" rel="noopener">pydantic-docs.helpmanual.io</a><br/>
<b>Monodraw</b>: <a href="https://monodraw.helftone.com" target="_blank" rel="noopener">monodraw.helftone.com</a><br/>
<b>Async's lru cache</b>: <a href="https://github.com/iamsinghrajat/async-cache" target="_blank" rel="noopener">github.com</a><br/>
<b>Rich CLI</b>: <a href="https://github.com/Textualize/rich-cli" target="_blank" rel="noopener">github.com</a><br/>
<b>Nerd Fonts</b>: <a href="https://www.nerdfonts.com" target="_blank" rel="noopener">nerdfonts.com</a><br/>
<b>Oh My Posh</b>: <a href="https://ohmyposh.dev/docs/themes" target="_blank" rel="noopener">ohmyposh.dev</a><br/>
<b>Python Object Allocator ASCII Art</b>: <a href="https://github.com/python/cpython/blob/4b4439daed3992a5c5a83b86596d6e00ac3c1203/Objects/obmalloc.c#L778" target="_blank" rel="noopener">github.com</a><br/>
<b>Balsamiq wireframes</b>: <a href="https://balsamiq.com/wireframes/" target="_blank" rel="noopener">balsamiq.com</a><br/>
<b>Watch this episode on YouTube</b>: <a href="https://www.youtube.com/watch?v=MN14DYgboOo" target="_blank" rel="noopener">youtube.com</a><br/>
<b>Episode transcripts</b>: <a href="https://talkpython.fm/episodes/transcript/380/7-lessons-from-building-a-modern-tui-framework" target="_blank" rel="noopener">talkpython.fm</a><br/>
<br/>
<b>--- Stay in touch with us ---</b><br/>
<b>Subscribe to us on YouTube</b>: <a href="https://talkpython.fm/youtube" target="_blank" rel="noopener">youtube.com</a><br/>
<b>Follow Talk Python on Twitter</b>: <a href="https://twitter.com/talkpython" target="_blank" rel="noopener">@talkpython</a><br/>
<b>Follow Michael on Twitter</b>: <a href="https://twitter.com/mkennedy" target="_blank" rel="noopener">@mkennedy</a><br/></div><br/>
<strong>Sponsors</strong><br/>
<a href='https://talkpython.fm/foundershub'>Microsoft</a><br>
<a href='https://talkpython.fm/sentry-dex-conf'>Sentry's DEX Conference</a><br>
<a href='https://talkpython.fm/assemblyai'>AssemblyAI</a><br>
<a href='https://talkpython.fm/training'>Talk Python Training</a>
↧