Navigating Low code and the AI Era with Mobile and Gemini Pro

Navigating Low code and the AI Era with Mobile and Gemini Pro

I have been working on this article for a while now and today, I have decided to finally finish it and bring it to the world to read.

This article is a response to ongoing debates in the tech community, including:

  • Flutter is Low Code
  • Speculations about AI potentially taking over the roles of developers.
  • Arguments that the rise of Low Code platforms might diminish the need for traditional developers.

I've taken the time to carefully craft this article to encompass these discussions, aiming to provide a comprehensive understanding of these topics. Without further delay, let's dive right in.

Understanding Low Code Development

Low code is a visual approach to software development that eases our task by enabling us for faster delivery of applications through minimal coding. It has a Graphical User Interface and a drag-and-drop features, that automates certain aspect of software development, eliminating traditional computer programming approaches.

Android Development: A Closer Look

While Android development itself does not inherently feature low-code capabilities, tools like Android Studio have introduced a Layout Editor that simplifies UI design through drag-and-drop functionality, and thus making it more accessible for people with little to no background with writing extensive XML code. However, Jetpack Compose, Android's modern toolkit, currently lacks support for the Layout Editor, though it offers a powerful "@preview" feature for application preview.

Flutter: Demystifying the Myth

Flutter often gets mistaken for a low code platform, thanks to the intuitive features of IDEs like Android Studio or XCode (SwiftUI). However, Flutter does not involve dragging and dropping components nor does it support the Layout Editor. Flutter Flow, though, leans towards a no-code approach, similar to how WordPress operates for web development.

AI in Development: A Case Study

Recently, AI, particularly Generative AI like Google's Gemini, has been making waves. Intrigued, I decided to experiment with Gemini Pro, initially requesting code for "create a CRUD flutter application with firebase as backend". The initial response was lacking, ignoring key considerations such as null safety in Dart and Flutter.

class Todo {
  String id;
  String name;
  double price;

  Todo({
    this.id,
    this.name,
    this.price,
  });

  Todo.fromMap(Map<String, dynamic> map) {
    this.id = map['id'];
    this.name = map['name'];
    this.price = map['price'];
  }

  toMap() {
    return {
      'id': this.id,
      'name': this.name,
      'price': this.price,
    };
  }
}

I then refined my prompt, asking for the same application but with null safety. The subsequent code was better, addressing the critical issue of null safety. However, additional issues surfaced when examining the provided service code.

Let us take a look at the response

class Todo {
  int id;
  String title;
  bool completed;

  Todo({required this.id, required this.title, required this.completed});

  Map<String, dynamic> toMap() {
    return {
      'id': id,
      'title': title,
      'completed': completed,
    };
  }

  factory Todo.fromMap(Map<String, dynamic> map) {
    return Todo(
      id: map['id'],
      title: map['title'],
      completed: map['completed'],
    );
  }
}

Okay so... Better. Null safety was taken into consideration!

As developers, it is of second nature to easily identify and quickly fix the issues. Non-developers may struggle for the same due to not having enough experience with code, and thus increasing debugging time.

Moreover, using tools such as Bard or ChatGPT requires the creation of precise prompts relying on a developer's specialised experience and skills.

For example, the initial question(create a CRUD flutter application with firebase as backend) was also asked to GPT-4 and the response was as follows:

Set Up Flutter Environment:

Ensure you have Flutter installed on your machine.
Create a new Flutter project using the command flutter create your_project_name.
Add Firebase to Your Flutter Project:

Go to the Firebase Console, create a new project, and follow the setup instructions for Flutter.
For Android, you'll need to add your app's package name and download the google-services.json file to your project.
For iOS, you'll need to add your iOS bundle ID and download the GoogleService-Info.plist file.
Add Required Dependencies:

In your pubspec.yaml file, add Firebase dependencies like firebase_core, cloud_firestore, firebase_auth, etc., depending on your needs.
Initialize Firebase:

Initialize Firebase in your Flutter application, typically in the main.dart file, using Firebase.initializeApp().
Create the UI for CRUD Operations:

Design a user interface that includes forms and lists for creating, reading, updating, and deleting data.
Use TextFormField for input fields, and ListView or similar widgets to display data.
Implement Create, Read, Update, and Delete Functions:

Create: Use Firebase services to add new data to your Firestore database or Firebase Realtime Database.
Read: Retrieve data from Firebase and display it in your app. You can use StreamBuilder or FutureBuilder for real-time updates.
Update: Provide a way to modify existing data in Firebase.
Delete: Implement functionality to remove data from Firebase.
Handle User Authentication (Optional):

If your app requires user authentication, integrate Firebase Authentication to manage users.
Create sign-up, login, and logout functionalities.
Test Your Application:

Test all CRUD functionalities thoroughly to ensure they are working as expected.
Ensure that the UI is responsive and user-friendly.
Deploy the App:

Once everything is tested and working, you can deploy your app to the Google Play Store or Apple App Store.
Remember, this is a simplified overview. Each step involves detailed coding and configuration. You'll also need to manage user permissions and data security in Firebase according to your application's requirements.

Arising Question: Will AI replace developers?

The answer is no as we have not reached an era where AI has developed into super AI yet. Developers are atleast going to be using these tools to make their work faster or even better. As for people with no technical background, they can not possibly overtake us neither.

In conclusion, AI and low-code development tools are valuable aids for developers, but they won't replace us in software development. They enable us to work more efficiently and create applications more quickly, but developers will remain indispensable for their expertise in areas such as performance optimisation.

Interview with Abdallah Yashir Ramsing: Low Code Development:

Abdallah is always my go to person to discuss about tech and the industry. Mostly because we understand each other, and it feels really great to have someone like him who pretty much understand my points.

His Highlights:

Low-code solutions are effective for generic needs and can expedite proof-of-concept development. However, their limitations become apparent when optimising for specific requirements.

Short but sweet I would say.


Wrapping Up

AI and low-code are here to assist developers, making their work more efficient, but the human expertise of developers remains irreplaceable.


References:

Gemini - Google DeepMind
Gemini is built from the ground up for multimodality — reasoning seamlessly across image, video, audio, and code.
Quick start | Jetpack Compose | Android Developers
Low-Code vs. No-Code: What’s the Difference? - IBM Blog
Low-code and no-code are two new software development solutions — how do they compare? The demand for hyperautomation and IT modernization has grown, but enterprises have been struggling to align with these trends because of the current limited availability of developer talent. Many IT projects get…
Abdallah Yashir Blog
Thoughts, stories and ideas.

About Me

I am Zaahra, a Google Women Techmakers Ambassador who enjoy mentoring people and writing about technical contents that might help people in their developer journey. I also enjoy building stuffs to solve real life problems.

To reach me:

LinkedIn: https://www.linkedin.com/in/faatimah-iz-zaahra-m-0670881a1/

X (previously Twitter): _fz3hra

GitHub: https://github.com/fz3hra

Cheers,

Umme Faatimah-Iz-Zaahra Mujore | Google Women TechMakers Ambassador | Software Engineer