No-Code is Trash

FlutterFlow
12 Aug 202409:57

Summary

TLDRThis video script challenges the 'no code' concept, arguing that the goal should be building great products, not minimizing code. It introduces Flutter Flow as a visual development platform that offers a balance between ease of use and customization, with low abstraction for direct widget control. It emphasizes that Flutter Flow is not about hiding code but providing a better interface for development, including features like seamless collaboration and developer enhancements, while maintaining control and ownership over the code.

Takeaways

  • 🔍 The script discusses the misconceptions around 'no code' and 'low code' development tools, emphasizing that the goal should be building great products, not just writing less code.
  • 🚗 The analogy of the car being invented not for a 'no horses' movement is used to illustrate that the purpose of development tools is to facilitate building, not to eliminate code altogether.
  • 🛠️ The speaker argues that the best interface for building applications may not be text-based, suggesting a more visual and interactive approach could be superior.
  • 🎨 Flutter Flow is introduced as a 'visual development platform' rather than a 'no code' tool, aiming to provide a richer experience for most development needs.
  • 🔑 Two main issues with the term 'no code' are identified: the wrong focus on reducing code rather than improving product development, and the association with poor performance and lack of customization.
  • 🔄 The importance of abstraction level in development tools is highlighted, with Flutter Flow positioned as a low abstraction interface that corresponds closely with the underlying code.
  • 🛡️ Flutter Flow is designed to provide fine-grained control and customization while maintaining ease of use, differing from high abstraction platforms that sacrifice these for simplicity.
  • 🔄 The script explains that Flutter Flow enhances developer productivity by automating common setup tasks, allowing more time for customization and unique features.
  • 🤝 Collaboration and deployment with Flutter Flow are streamlined, with the ability to share work through URLs and deploy across platforms without complex setups.
  • 🛑 The platform offers developer enhancements on top of Flutter, such as support for enums in Firestore and automatic schema generation from API responses.
  • 🏛️ Control and ownership over the code are emphasized, with Flutter Flow giving developers full access to widget properties and the ability to export custom code as their intellectual property.

Q & A

  • What is the main issue with the term 'no code' according to the video?

    -The main issue with the term 'no code' is that it incorrectly focuses on writing less or no code as the goal, rather than focusing on building great products efficiently and intuitively.

  • Why is the invention of the car a relevant analogy for discussing 'no code' tools?

    -The invention of the car is a relevant analogy because, like 'no code' tools, the car was not about the 'no horses' movement but about providing a better, more efficient way to travel. Similarly, 'no code' tools should be about better product development, not just reducing code.

  • What is the historical decision in computing that the video suggests reevaluating?

    -The video suggests reevaluating the historical decision that an ASCII character set is the best interface for building applications, proposing that perhaps a more visual, app-based interface could be superior.

  • What does the video propose as a better development interface for building apps?

    -The video proposes that the development interface should be more visual, possibly using shapes, icons, and a user interface that allows for immediate property adjustments and visual logic flow.

  • What is the second issue with the term 'no code' discussed in the video?

    -The second issue with 'no code' is that it is associated with poor performance, lack of scalability, and customization issues, often due to high levels of abstraction in no code platforms.

  • How does Flutter Flow differ from other 'no code' platforms in terms of abstraction?

    -Flutter Flow differs by offering a low abstraction interface, meaning that its buttons and widgets correspond closely with the underlying Flutter API, allowing for more direct control and customization.

  • What are the five key aspects of Flutter Flow as a visual development platform?

    -The five key aspects are: 1) A visual interface for real-time app development, 2) Core setup for common features like authentication and routing, 3) Seamless collaboration and deployment, 4) Developer enhancements on top of Flutter, and 5) Control and ownership over widget properties and custom code.

  • Why does the video suggest that 'low code' or 'no code' is not the right question to ask about Flutter Flow?

    -The video suggests that the level of abstraction is the right question to ask, as Flutter Flow is designed to provide a balance between ease of use and fine-grain control, rather than simply reducing code.

  • How does the video describe the balance between customization and ease of use in application development?

    -The video describes a continuum of abstraction in application development, with machine code and platform APIs at one extreme offering high customization but difficulty, and high abstraction platforms offering ease of use but less customization. Flutter Flow aims to balance both on this continuum.

  • What is the technological progression philosophy presented in the video regarding application development?

    -The video presents a philosophy of technological progression where mastering lower-level technologies allows for the creation of higher-level abstractions that are both powerful and user-friendly, using the evolution of the car as an example.

  • How does Flutter Flow address the issue of custom functions and widgets not being provided?

    -Flutter Flow addresses this by providing built-in support for custom functions and widgets, ensuring that developers have the fine-grain control needed to create complex and expressive applications.

Outlines

00:00

🛠️ Misconceptions About No-Code Development

The first paragraph addresses the misconceptions surrounding no-code and low-code development. It argues that the goal of development should be to build great products, not to write less code. The speaker criticizes the term 'no-code' as a goal, comparing it to the 'no horses' movement that was not the goal of the car invention. Instead, the focus should be on finding the best interface for building applications, which historically has been the ASCII character set. The speaker suggests that as technology progresses, we should reconsider what the best interface might be, hinting at a more visual and intuitive approach to app development.

05:00

🌐 Introducing Flutter Flow: A Visual Development Platform

The second paragraph introduces Flutter Flow as a visual development platform that challenges the traditional no-code narrative. It outlines five key aspects of Flutter Flow: a visual interface that allows for real-time app building and widget manipulation; core setup automation for common app features like authentication and routing; seamless collaboration and deployment capabilities; developer enhancements on top of Flutter, such as support for enums and automatic schema generation; and control and ownership over the code, with the ability to export and continue development elsewhere. The speaker emphasizes that Flutter Flow is not a no-code platform but rather a tool that provides a balance between ease of use and customization, positioning it as a middle ground on the abstraction continuum of application development tools.

Mindmap

Keywords

💡No Code

The term 'No Code' refers to platforms or tools that allow users to create applications or software without writing any code. In the video, it's discussed as a controversial concept, often seen as a double-edged sword. While it enables non-developers to build apps quickly, critics argue it can lead to poor scalability, performance issues, and limited customization. The speaker distinguishes Flutter Flow from typical no-code platforms, emphasizing its low abstraction level and control.

💡Low Abstraction Interface

A 'Low Abstraction Interface' refers to a development platform where the tools and components closely mirror the underlying code or technology. In the video, Flutter Flow is described as having a low abstraction interface, meaning that the visual components directly correspond to the underlying Flutter API. This allows developers to maintain control and customization while still benefiting from a visual development environment.

💡Flutter Flow

Flutter Flow is a visual development platform built on top of Flutter, a popular UI toolkit for building natively compiled applications. The video presents Flutter Flow as more than just a no-code tool, describing it as a 'visual development platform' that balances ease of use with control and customization. It enables developers to create complex applications with a visual interface while retaining the ability to dive into code when needed.

💡Visual Development Platform

A 'Visual Development Platform' allows users to create software through a graphical interface, often by dragging and dropping elements, rather than writing code. Flutter Flow is characterized as such a platform in the video, with the distinction that it offers a low level of abstraction, enabling detailed control over the application's design and functionality. This concept is central to the video's argument that Flutter Flow is an evolution of development interfaces.

💡Abstraction Level

'Abstraction Level' refers to the degree of complexity and detail that is hidden from the user when interacting with a system or tool. In the video, this concept is crucial in differentiating Flutter Flow from other no-code platforms. A high abstraction level simplifies development but can limit customization and control, while a low abstraction level, as in Flutter Flow, allows developers to work more closely with the underlying code.

💡Technological Progress

'Technological Progress' refers to the ongoing development and improvement of technology over time. The video frames Flutter Flow as part of a broader narrative of technological progress, comparing it to historical advances like the shift from command-line interfaces to graphical user interfaces. The platform is portrayed as the next step in this progression, offering a balance between ease of use and the ability to harness lower-level technologies.

💡Customization

'Customization' in the context of the video refers to the ability to modify and tailor an application to specific needs or preferences. This is a key point of differentiation for Flutter Flow, which, unlike many no-code tools, allows for deep customization of apps through its low abstraction interface. The video emphasizes that users of Flutter Flow can adjust nearly every aspect of their applications, making it suitable for more complex projects.

💡Scalability

'Scalability' refers to the ability of a system, network, or application to handle increasing amounts of work or to be expanded to accommodate growth. In the video, scalability is mentioned as a common criticism of no-code platforms, which are often said to struggle with large-scale or complex applications. Flutter Flow addresses this concern by providing a development environment that supports both ease of use and the ability to scale applications effectively.

💡Boilerplate Code

'Boilerplate Code' refers to sections of code that are repeated in multiple places with little or no modification. The video discusses how Flutter Flow helps developers by automating the generation of boilerplate code for common tasks like authentication, routing, and localization. This automation saves time and allows developers to focus on more specialized and customized aspects of their applications.

💡Developer Enhancements

'Developer Enhancements' in Flutter Flow refer to features or tools that improve the developer's experience by adding functionality or simplifying tasks. The video mentions enhancements like support for enums in Firestore and automatic schema generation as examples of how Flutter Flow goes beyond basic visual development, offering tools that streamline complex development processes and integrate seamlessly with existing technologies.

Highlights

The term 'no code' is a misnomer; the goal is to build great products, not to write less code.

No code tools are often criticized for poor scalability, performance, and customization, but these issues stem from high abstraction levels.

Flutter Flow is a visual development platform that provides a richer experience for most development needs.

The best interface for building applications might not be text-based but could involve visual elements and interactions.

Flutter Flow is designed as a low abstraction interface, offering a direct correspondence between app elements and Flutter API widgets.

Writing less code is a byproduct, not the goal; the focus should be on providing an intuitive and efficient interface.

The invention of the car wasn't about the 'no horses' movement, just as no code shouldn't be about writing no code.

Technology has progressed, but the decision to use an ASCII character set for building applications hasn't been questioned.

Flutter Flow enhances developer experience by handling boilerplate code and common features like authentication and routing.

Seamless collaboration and deployment are enabled through Flutter Flow, allowing for easy sharing of demos and development.

Flutter Flow provides developer enhancements on top of Flutter, such as support for enums in Firestore.

Automatic schema generation in Flutter Flow allows for the creation of data models from API responses.

Flutter Flow offers fine-grain control and customization without being opinionated, exposing widget properties and supporting custom functions and widgets.

Flutter Flow is positioned in the middle of a continuum of abstraction, balancing ease of use with granular control.

The platform allows for code export and continued development elsewhere, ensuring ownership of the intellectual property.

Flutter Flow is the next iteration in application development, moving from a command line interface to a more intuitive graphical interface.

Technological progress is about mastering lower-level technologies to build the next layer, as seen in the evolution from compilers to higher-level programming languages.

Flutter Flow represents the future of application development, offering a visual, intuitive, and powerful development experience.

Transcripts

play00:00

let's talk about low code no code he

play00:02

built it all with no code is it going to

play00:04

put my freelancing career on hold

play00:06

because now companies can build things

play00:08

with no code today we're going to build

play00:09

an app all in 24 hours for real and with

play00:12

no code no code at development is a trap

play00:15

flutter flow is often described as a no

play00:17

code tool but we hate that so in this

play00:21

video I'm going to tell you what's wrong

play00:23

with the term no code and no code tools

play00:25

and then explain what flutter flow

play00:27

actually is and there are two m things

play00:30

that are wrong about the term no code

play00:33

first wrong Focus we've never had a

play00:36

conversation like hey our users are

play00:39

writing too much code we need to stop

play00:42

that our goal is to help people build

play00:45

great products and we do that by

play00:47

providing an intuitive and efficient

play00:49

interface writing less code is a

play00:52

byproduct of the goal not the goal

play00:54

itself writing less code or no code has

play00:57

never been the goal it's kind of like

play00:58

how the invention of the car wasn't

play01:00

about the no horses movement and there

play01:03

are some parts of building great

play01:05

products where code is the best

play01:07

interface for it you see long ago in the

play01:10

anals of computing history it was

play01:12

decided that the best interface for

play01:14

building applications was an asy

play01:17

character set and there were reasons and

play01:19

constraints for why that was but as

play01:21

technology has progressed we haven't

play01:23

question that decision but think about

play01:25

it forget everything you know about

play01:28

coding and ask yourself what's the the

play01:30

best interface for building apps should

play01:33

we use letters sure numbers yeah colors

play01:38

well yeah that's like syntax

play01:40

highlighting what about popups

play01:43

contextual menus that give you options

play01:45

to complete what you started writing oh

play01:48

yeah you mean autoc completion yeah what

play01:50

about shapes maybe we take that

play01:53

autocomplete menu and give it some more

play01:55

legible icons and you're building an app

play01:58

that has a user interface so maybe the

play02:00

app itself would be a better interface

play02:03

than just letters this way you could

play02:05

select an element and immediately see

play02:08

all its properties or when you want to

play02:10

execute some logic you can simply add an

play02:13

action and Visually see the execution

play02:16

flow you see it's so obvious it's been

play02:19

under our noses the entire time the

play02:21

interface of the app should be included

play02:24

in the app development interface this is

play02:27

the same movement from a command line

play02:30

interface to a graphical user interface

play02:33

when the graphical user interface was

play02:35

developed the goal wasn't about writing

play02:37

fewer characters but about what's the

play02:39

best interface for doing things like

play02:42

exploring files and folders moving them

play02:44

around opening them and it turns out

play02:47

that for many operations having a 2d

play02:50

canvas with a free floating cursor or

play02:53

what we now call a mouse is extremely

play02:55

powerful we started with just text and

play02:58

over the years we keep add adding

play03:00

additional elements to the app

play03:02

development interface and why would we

play03:04

think that we're done flutter flow is

play03:06

the next step in that progression a

play03:09

visual development platform that

play03:11

provides a richer experience for most

play03:14

development needs okay that's the first

play03:17

reason the second reason is Bad Company

play03:21

no code Garners both the highest praise

play03:24

and the lowest disdain and the disdain

play03:27

is often earned the critics will say

play03:29

that no code doesn't scale has terrible

play03:31

performance and inability to customize

play03:34

and produce spaghetti code and to be

play03:36

honest they're often right but there's

play03:38

one critical distinction between flutter

play03:41

flow and those apps the level of

play03:44

abstraction that is SAS applications

play03:47

that don't scale have terrible

play03:49

performance and lack customizability are

play03:51

typically High abstractions that means

play03:54

that the buttons in the app are far away

play03:56

from what the code is doing under the

play03:59

hood typically this means that the

play04:01

buttons in the app will have really

play04:02

userfriendly names like fill the screen

play04:05

or move to the right but the underlying

play04:07

code is often verbose and griddle

play04:11

flutter flow is designed as a low

play04:13

abstraction interface this means that

play04:15

the buttons and widgets in our app

play04:17

corresponds often one to one with the

play04:20

underlying widgets in the flutter API so

play04:23

if you drop in a container widget and

play04:25

inspect the code it's just a flutter

play04:27

container a column is just a column far

play04:30

from trying to hide the underlying

play04:32

technology we surface it it's literally

play04:34

in our name flutter flow so the question

play04:37

to ask is not low code or no code but

play04:40

what's the abstraction level okay so if

play04:43

flutter flow is not a no code platform

play04:45

then what is it well we like to call it

play04:48

a visual development platform and this

play04:51

involves Five Points first a visual

play04:55

interface we want to create the next

play04:57

iteration of the development interface

play05:00

this allows you to see your app in real

play05:03

time visually select widgets navigate

play05:05

through your widget shf and find and set

play05:08

widget properties second core setup like

play05:11

it or not 80% of a developer's time is

play05:14

spent on boiler plate setting up

play05:17

authentication routing and localization

play05:20

for many of these common features that

play05:22

every app has flutter flow takes care of

play05:25

it you can think about this as the next

play05:27

iteration of Auto completion this gives

play05:29

you back your time so you can spend it

play05:31

on more fine grain customization where

play05:34

your skills are best used third seamless

play05:37

collaboration and deployment flutter

play05:39

flow allows you to start building

play05:41

immediately without having to handle

play05:43

local setup SDK installation or package

play05:46

management you can simply hop on the web

play05:48

and start developing this also means

play05:50

that sharing demos and collaborating can

play05:52

be done with a simple URL no setup

play05:56

required and when it's time to deploy

play05:58

flutter flow combines both both the

play06:00

power of flutter crossplatform app

play06:02

generation to produce native binaries

play06:04

for web IOS and Android as well as

play06:07

deployment pipelines with code magic for

play06:09

mobile apps and Google Cloud servers for

play06:12

web deployment fourth developer

play06:14

enhancements as a layer on top of

play06:17

flutter flutter flow provides a number

play06:19

of developer enhancements you can think

play06:22

of us like typescript to JavaScript

play06:24

we're not only trying to provide the

play06:25

best low abstraction interface but to

play06:28

add additional enhancements for instance

play06:31

here's two fir store doesn't natively

play06:33

support enums as a data type our users

play06:36

wanted them so we added support of

play06:38

course this is not a feature in fire

play06:41

store so if you look at your collection

play06:43

that enum will just be a strand but

play06:45

flutter flow will ensure that wherever

play06:47

enums are used in your application they

play06:50

will safely follow the type definition

play06:52

or second automatic schema generation

play06:55

when you make an API call and receive

play06:58

back the response you can drop drop that

play07:00

Json into flutter flow and it will

play07:02

automatically create the data model OKAY

play07:04

Fifth and final Point control and

play07:06

ownership as a low abstraction interface

play07:09

we expose almost every widget property

play07:12

and most of the commonly used widgets

play07:14

this means that you have fine grain

play07:16

control to design complex and expressive

play07:19

applications without having to work

play07:21

within an opinionated framework and a

play07:23

flutter flow doesn't provide the widgets

play07:25

you need we have built-in support for

play07:27

custom functions and widgets and all

play07:29

that code you write individual platform

play07:32

you own it's your intellectual property

play07:35

and if you want to export it and

play07:36

continue to development or deployment

play07:38

elsewhere you're free to do so okay so

play07:40

here's how I think about the big picture

play07:43

flutter flow is balanced in the center

play07:45

of two extremes think about tools for

play07:48

building applications on a Continuum of

play07:50

abstraction on the lowest level you have

play07:53

things like machine code and platform

play07:55

apis like graphics apis and while you

play07:58

have a high degree of custom imization

play08:00

they're really difficult and slow to

play08:02

work with on the highest level of

play08:04

abstraction you gain ease of use and

play08:06

speed but give up customization and

play08:08

scalability but right in the middle

play08:11

there's a balance where you have both

play08:13

granular control and ease of use and

play08:17

this is honestly what makes describing

play08:18

flutter flow so difficult because

play08:21

depending on who you are and what your

play08:23

role and questions are communicating

play08:25

what flutter flow is will be different

play08:27

to a developer who says why don't you

play08:29

just write the code we say flutter flow

play08:31

is simply the next step in the great

play08:34

tradition of technological progress

play08:36

because technological progress has

play08:39

always been about mastering lower level

play08:42

Technologies and then building the next

play08:44

layer one abstraction layer above early

play08:48

in Computing many were building

play08:50

compilers because everyone knows real

play08:53

programmers write compilers almost no

play08:56

one today is building compilers this is

play08:58

just technological iCal progress for

play09:01

instance think about the car to get to

play09:03

the higher level abstraction technology

play09:06

of the car we first had to master the

play09:09

lower levels of rubber metal eny glass

play09:12

electricity and the combustion engine

play09:15

but once we could design those lower

play09:16

levels we can move up to the next level

play09:19

and create that great machine the car

play09:22

but to the higher level abstraction

play09:24

person thinking that flutter flow is

play09:26

just another no code platform that

play09:28

misunder understands the goal in the

play09:30

design of flutter flow that is that it's

play09:32

designed as a low abstraction to give

play09:35

users access to lower level Technologies

play09:38

but with a visual interface designed for

play09:41

ease of use that's flutter flow balanced

play09:44

right in the middle so welcome to the

play09:47

Future the next iteration of application

play09:49

development welcome to flutter flow

Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
Flutter FlowApp DevelopmentNo-Code MisconceptionsVisual InterfaceLow-Code ToolsDeveloper EfficiencyAbstraction LevelsCustomizationCollaborationCross-PlatformTech Progress
هل تحتاج إلى تلخيص باللغة الإنجليزية؟