Skip to content

Commit 933faa9

Browse files
authored
Merge pull request #176 from manikanta-hitunik-com/patch-567865
Update 494-update-on-flet-python-flutter-uis.txt
2 parents 0731422 + 10b285f commit 933faa9

File tree

1 file changed

+22
-23
lines changed

1 file changed

+22
-23
lines changed

transcripts/494-update-on-flet-python-flutter-uis.txt

+22-23
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474

7575
00:03:25 I just updated Flutter on my Mac mini.
7676

77-
00:03:29 I had out of date CocoaPods and Ruby and there's a whole tool chain that people need to know about.
77+
00:03:29 I had out of date Cocoa Pods and Ruby and there's a whole tool chain that people need to know about.
7878

7979
00:03:35 Maybe we can talk a little bit about the tool chain, but yeah, you're constantly chasing versions and releases and updates.
8080

@@ -84,7 +84,7 @@
8484

8585
00:03:46 There's a lot there.
8686

87-
00:03:46 We recently started using Flutter version manager FBM and it's pretty good.
87+
00:03:46 We recently started using Flutter version manager FVM and it's pretty good.
8888

8989
00:03:52 Yeah, because the updating is so fast, you know, it's really hard to catch up.
9090

@@ -138,7 +138,7 @@
138138

139139
00:06:11 My name is Peter Fitzner.
140140

141-
00:06:13 I'm the founder and developer of a flat framework, like Flutter for Python, for Flutter, yeah, it's been two and a half years since we released the first version. It's not like the first release of web and since that time we gained really great traction. To my mind like we got 12,000 stars on github, 72 contributors, 5k members on discord channel and I found the statistics for PyPy. It's like almost 3 million downloads from PyPy of web package. So It's a great community, great people, a lot of feedback, a lot of issues.
141+
00:06:13 I'm the founder and developer of a flat framework, like Flutter for Python, for Flutter, yeah, it's been two and a half years since we released the first version. It's not like the first release of web and since that time we gained really great traction. To my mind like we got 12,000 stars on Github, 72 contributors, 5k members on discord channel and I found the statistics for PyPI. It's like almost 3 million downloads from PyPI of web package. So It's a great community, great people, a lot of feedback, a lot of issues.
142142

143143
00:07:03 So it's pretty nice.
144144

@@ -172,7 +172,7 @@
172172

173173
00:08:15 I think Also, the interesting part about Flutter is that it has a painted UI.
174174

175-
00:08:22 So it started from the Skia engine and now they have their own engine in Palo Alto.
175+
00:08:22 So it started from the Skai engine and now they have their own engine in Palo Alto.
176176

177177
00:08:28 So the UI is basically painted on the canvas.
178178

@@ -392,7 +392,7 @@
392392

393393
00:16:46 We started from a simple design.
394394

395-
00:16:49 it was pre-built executable for every platform, mostly like for desktop platform, which is able to display all controls we have. And that executable was an ease part of a wheel, flat wheel you install. So if you do heap install flat, you install this executable with the Python API itself. But then we started getting more and more requests like asking Like, how would I put all this beautiful stuff to a mobile device?
395+
00:16:49 it was pre-built executable for every platform, mostly like for desktop platform, which is able to display all controls we have. And that executable was an ease part of a wheel, flet wheel you install. So if you do heap install flet, you install this executable with the Python API itself. But then we started getting more and more requests like asking Like, how would I put all this beautiful stuff to a mobile device?
396396

397397
00:17:23 Or how do I do a standalone app?
398398

@@ -430,7 +430,7 @@
430430

431431
00:20:34 And also the biggest issue with Kairi's approach was you have to build all the Python runtime and all the modules like packages by yourself all the time.
432432

433-
00:20:48 If you're a user, it's kind of pain. So you should enjoy SDK installed and all environment wearables in place you know like and I mean it could be a real struggle to build and it takes time sometimes like if you add NumPy pandas to your app as a dependencies it could take like like half an hour to build all the packages and fingers crossed you know like whether it finishes okay you know or you get some weird pre-prepare yeah it wasn't nice it wasn't nice. I mean, it worked, this approach worked for simple things, you know, with the way your app requires fewer Python packages. But if it's not something trivial, it's either no recipe or outdated recipe, or you have to build your own recipe, etc, etc.
433+
00:20:48 If you're a user, it's kind of pain. So you should enjoy SDK installed and all environment wearables in place you know like and I mean it could be a real struggle to build and it takes time sometimes like if you add NumPy pandas to your app as a dependencies it could take like half an hour to build all the packages and fingers crossed you know like whether it finishes okay you know or you get some weird pre-prepare yeah it wasn't nice it wasn't nice. I mean, it worked, this approach worked for simple things, you know, with the way your app requires fewer Python packages. But if it's not something trivial, it's either no recipe or outdated recipe, or you have to build your own recipe, etc, etc.
434434

435435
00:21:44 And a recipe is basically saying how to build some particular library or Python itself for Android or for iOS or something, is that right?
436436

@@ -452,7 +452,7 @@
452452

453453
00:22:08 Yeah.
454454

455-
00:22:08 It's it's C, C++.
455+
00:22:08 It's C, C++.
456456

457457
00:22:11 Yeah.
458458

@@ -492,7 +492,7 @@
492492

493493
00:23:48 For mobile, now we use a different approach and I can talk about this.
494494

495-
00:23:53 For web we use Pylodyte.
495+
00:23:53 For web we use Pyodide.
496496

497497
00:23:55 Yeah.
498498

@@ -530,7 +530,7 @@
530530

531531
00:25:33 Yeah, you just put the WebAssembly files there and it just picks it up and goes, right?
532532

533-
00:25:36 It's Flutter itself and Python, PyDyn, which is WebAssembly, which is Python and WebAssembly.
533+
00:25:36 It's Flutter itself and Python, Pyodide, which is WebAssembly, which is Python and WebAssembly.
534534

535535
00:25:45 So we don't compile Flutter part into WebAssembly yet because we have a lot of dependencies and not all of them support Wasm.
536536

@@ -580,7 +580,7 @@
580580

581581
00:27:40 It's really great.
582582

583-
00:27:42 I mean, like the way producing binary libraries, you know, like for, and packaging them, it's really good because we can use dynamic libraries versus static libraries entirely. Like entirely everything, like all these third-party modules you can file on your machine every time they produce static libraries. Basically like.a files for iOS. And finally, and they like the entire code base is like single executable at the end, you know, like everything like NumPy, like all this stuff is a single file.
583+
00:27:42 I mean, like the way producing binary libraries, you know, like for, and packaging them, it's really good because we can use dynamic libraries versus static libraries entirely. Like entirely everything, like all these third-party modules you can file on your machine every time they produce static libraries. Basically like a files for iOS. And finally, and they like the entire code base is like single executable at the end, you know, like everything like NumPy, like all this stuff is a single file.
584584

585585
00:28:20 I mean, you cannot reuse some of those libraries, you know, like when you package them into iOS app, I really love the approach and I understood, you know, that it's probably the way going forward, you know, and you see it's kind of like it's getting like a standard now and it allows this approach allows you to have binary wheels that are prebuilt and put somewhere on not on PyPy.org yet.
586586

@@ -596,7 +596,7 @@
596596

597597
00:29:30 Excellent.
598598

599-
00:29:31 But NumPy folks, for example, as you said, they could use their expertise to get NumPy, this NumPy C code and Python code to build for WebAssembly and just put that in as automation and GitHub and everyone else in the world doesn't have to solve it over and over.
599+
00:29:31 But NumPy folks, for example, as you said, they could use their expertise to get NumPy, this NumPy C code and Python code to build for Web Assembly and just put that in as automation and GitHub and everyone else in the world doesn't have to solve it over and over.
600600

601601
00:29:47 Right?
602602

@@ -620,7 +620,7 @@
620620

621621
00:30:45 They're pretty powerful, you know?
622622

623-
00:30:46 And I remember there were a lot of like those times, like 2012, 2010, when Kylie and VWare started, there were a lot of issues trying to squeeze this desktop C code into a mobile processor.
623+
00:30:46 And I remember there were a lot of like those times, like 2012, 2010, when Kylie and VMware started, there were a lot of issues trying to squeeze this desktop C code into a mobile processor.
624624

625625
00:31:04 Now it's much easier. Most of those packages could be compiled as is without any tweaks, without any pictures, you know, so it's pretty, it's pretty nice.
626626

@@ -686,7 +686,7 @@
686686

687687
00:33:33 So what's the process?
688688

689-
00:33:35 This is one of those rough questions, you know, it's, and you should have a list of rough questions.
689+
00:33:35 This is one of those ruff questions, you know, it's, and you should have a list of ruff questions.
690690

691691
00:33:41 You're ready to answer.
692692

@@ -770,11 +770,11 @@
770770

771771
00:36:52 There is, by those scripts, which are part of Python 3.13.
772772

773-
00:36:58 So like, theoretically, if you go there to Python repository and look into those, folders you will see instructions you can you can follow those instructions and build runtime like build CPython for both iOS and Android but yes this is it's not blossom it's CPython compiled into native iOS or Android code like platform for platform not like code assemble and binary packages yes you have to repackage, you have to build binary packages targeting those platforms as well. And for that purposes we use MobileForge project by DeWare.
773+
00:36:58 So like, theoretically, if you go there to Python repository and look into those, folders you will see instructions you can you can follow those instructions and build runtime like build CPython for both iOS and Android but yes this is it's not blossom it's CPython compiled into native iOS or Android code like platform for platform not like code assemble and binary packages yes you have to repackage, you have to build binary packages targeting those platforms as well. And for that purposes we use Mobile Forge project by DeWire.
774774

775775
00:37:41 It's pretty nice, it's an awesome project, it's a brainchild of Malcolm and Russell.
776776

777-
00:37:48 And yeah, in its turn it uses cross-env package, which is basically the way to simulate, like it allows you to create a virtual environment and Python thinks that it's being run on a mobile device, you know. So it's like basically MobileForge is like you do people install something and it feels like for Python it feels like it's being run this command on a mobile device and you it uses like if it's binary package and there is setup.py or pyproject.toml It uses mobile compilers, cross compilers to build.so file and produce a build.
777+
00:37:48 And yeah, in its turn it uses cross-env package, which is basically the way to simulate, like it allows you to create a virtual environment and Python thinks that it's being run on a mobile device, you know. So it's like basically Mobile Forge is like you do people install something and it feels like for Python it feels like it's being run this command on a mobile device and you it uses like if it's binary package and there is setup.py or pyproject.toml It uses mobile compilers, cross compilers to build.so file and produce a build.
778778

779779
00:38:33 So if a pip install action requires a local build of something, it will use the mobile compilers with the target platform being like iPhone or whatever.
780780

@@ -868,7 +868,7 @@
868868

869869
00:43:54 For macOS, it's a bundle.
870870

871-
00:43:56 Is that a.app bundle?
871+
00:43:56 Is that app bundle?
872872

873873
00:43:57 Yeah.
874874

@@ -924,7 +924,7 @@
924924

925925
00:46:06 So yeah, definitely. It's our next step. Yeah. We, as you see, we're getting closer and closer to building real apps and we're getting more and more developers building real apps and they want to publish them. It's not just experimental, you know, anymore, like they want to publish them.
926926

927-
00:46:26 And we are working on that right now, like publishing. And it's actually, it's our number number one priority for the next year.
927+
00:46:26 And we are working on that right now, like publishing. And it's actually, it's our number one priority for the next year.
928928

929929
00:46:35 I'll tell you, if you had that, that dialed, I mean, that means that that opens up desktop apps completely.
930930

@@ -1168,11 +1168,11 @@
11681168

11691169
00:55:01 So maybe tell us what's in the future.
11701170

1171-
00:55:03 What's what's in the near term that people can count on and then we'll wrap up.
1171+
00:55:03 What's in the near term that people can count on and then we'll wrap up.
11721172

11731173
00:55:06 Yeah, maybe this roadmap is already outdated, but yeah, first of all, we want to have this 1.0 because it's maybe it's a psychological thing, you know, it's like people, developers feel stability and all that.
11741174

1175-
00:55:23 When there is 1.0, it says that the framework is ready for for SilverSaps.
1175+
00:55:23 When there is 1.0, it says that the framework is ready for Silver Saps.
11761176

11771177
00:55:29 It's a commitment to sustainability.
11781178

@@ -1202,11 +1202,11 @@
12021202

12031203
00:57:07 And so now I can't, you know, like that, what you're saying is there's a lot of stuff that you could help out with and make that smoother, but it's challenging.
12041204

1205-
00:57:14 Yeah. And still, it's still, you need Android Studio or Xcode or Visual Studio.
1205+
00:57:14 Yeah. And still, it's still, you need Android Studio or XCode or Visual Studio.
12061206

12071207
00:57:21 Yeah. You can spend a lot of time configuring those things.
12081208

1209-
00:57:24 You know what, maybe next year we're going to, we're going to work, start working on on the service, you know, like I call it packaging and publishing service.
1209+
00:57:24 You know what, maybe next year we're going to, we're going to work, start working on the service, you know, like I call it packaging and publishing service.
12101210

12111211
00:57:34 So you could somehow link a GitHub branch, like a production branch or something.
12121212

@@ -1304,7 +1304,7 @@
13041304

13051305
00:59:33 We should be right at the top.
13061306

1307-
00:59:34 You can also find the iTunes feed at /itunes, the Google Play feed at /play, and the Direct RSS feed at /rss on talkpython.fm.
1307+
00:59:34 You can also find the iTunes feed at /iTunes, the Google Play feed at /play, and the Direct RSS feed at /rss on talkpython.fm.
13081308

13091309
00:59:43 We're live streaming most of our recordings these days.
13101310

@@ -1317,4 +1317,3 @@
13171317
00:59:57 I really appreciate it.
13181318

13191319
00:59:59 Now get out there and write some Python code.
1320-

0 commit comments

Comments
 (0)