Making Apps using flutter - flutter

Is it possible to build a fully functioning application for iOS and Android using AndroidStudio + Flutter and FireBase alone? This is my first time trying to make a fully functioning mobile application which I want to use as I am constrained with my finances at the moment. I would appreciate the clarification.

Yes, it is possible to make both Android and IOS app using flutter and dart.
Flutter has many benefits. here some example :
Flutter hot reload helps you to build your app very fast.
User fluent. Can use app with excellent user interface design.
It's easy to use function like other OOP languages.
Update everyday with new features.
Flutter user community is increasing day by day .
Check the flutter docs for more info

Yes, Flutter can produce a fully functioning application for both iOS and Android platforms.
there are some apps built with Flutter. check them here
I am a native Android developer and I did some iOS as well. I started learning Flutter a couple of days ago and it seems promising.

Related

Does Flutter 3 support Webview on Desktop?

Flutter 3 was released recently with Desktop platform support for Windows, Linux and macOS.
Can Flutter developers clarify if Flutter 3 also supports Webview on Windows, Linux and macOS? Flutter documentation seems to suggest Webview support exists only for Android and ios.
Would appreciate some insights as I have a project that requires Webview, and if Flutter 3 supports it on all platforms it would make my work a lot easier. (I am asking here before trying out Flutter myself as I am completely unfamiliar with Flutter, and need to know about Webview status before I invest my time to learn Flutter).
(Note: Please do not go on a tangent and focus on "why webview" or whether it is apt etc. as I have no choice in the matter - it's one of the stated requirement of the project and I cannot change it).
No Flutter 3 Does not support Webview on Desktop, however you can use a package -
https://pub.dev/packages/desktop_webview_window

Flutter IOS & ANDROID Widgets Implementation

I wanted to ask about the implementation of IOS & Android Widgets for Flutter.
Current Scenario :
Basically, i have developed the app on android platform and now i want to convert it to IOS platform. Since this is my first app, i really need some experienced voice on some issues i am facing.
Questions :
1 - Is there any simple way to detect that the widgets currently used are of Android/IOS Platform ?
How can we know for sure that a specific widget is of Android platform and is not going to work on IOS platform and vice versa.
2 - If somehow we know for sure that the current widget we are using is of Android platform, then how can we find its equivalent widget to implement for IOS platform.
3 - Are these widgets specifically required when we are going to upload/publish to these platforms respective stores. For example in a scenario where i hadn't converted all of my android app widgets to ios widgets and when i try to publish the app for IOS store, does the IOS Store rejects that or not?
Any suggestions or help is greatly appreciated.
All standard widgets will work on iOS as is. Flutter paints the UI, rather than call the native APIs. You might use a plugin that does not support iOS, but I have not yet come across such a plugin on pub.dev.
If you want to write platform specific code, you can import dart:io and use the boolean Platform.isIOS or Platform.isAndroid.
Both the App Store and Play Store have specific requirements before your app is approved.
In case you really want to have Android specific widgets on Android devices and iOS specific widgets on iOS devices, then use the Flutter Platform Widgets package. This will exactly do that - drawing iOS buttons using the Cupertino library and Android buttons using the Android library (and most other widgets as well).
As #Mudassir mentioned in the other comment this is not a requirement. In case you go with the default widgets, you will have the same look on all devices (even web, Windows, etc.).

Do iOS and Android Flutter widgets also work on Flutter Web(PWA)

I'm interested in using Flutter primarily for my startup MVP on Web and possibly Android. I see the flutter community has made a lot of widgets but a lot of them are tagged iOS or Android. Since Futter is all about using one codebase is it wrong to assume that these widgets would work on web too? I imagine the setup would be different but similar with a Flutter web app as opposed to a Flutter Android app.
I couldn't find a whole lot about this on the Flutter site. I also know that web is still beta but by the time I'm done with the MVP it'll probably be at stable release or close enough.
Well... It depends. If the widget has some sort of native code the answer is no. In Flutter there are two type of packages: the "normal" package, and the plugin.
The packages are made only of dart code, so there are no bounds to native, and you can use everywhere dart (and Flutter) can run.
The plugins are packages with native code and you can use only on the platform supported by that plugin.
For example the package provider, it's a package, and you can use in every supported platform where dart (and Flutter) can run. But url_launcher, it's a plugin, so you can run only on Android, iOS, and web, but for example on desktop, it will no work.
If the package if you found it's only a widget, you should be able to use on the web.
TLDR: No,a PWA it's a web app, so it can't run Android or iOS specific code.

Flutter Basics (write once, run anywhere?)

Hi stack overflow community,
I'm a novice programmer in high school and have never written an app for mobile devices before so please bear with me. If I was to write an app using Flutter, will I only be required to write the code once and then be able to distribute different versions of it (iOS, macOS, Windows, Linux, Android, etc)? Or will I need to make small changes for each version such as using XCode to create the iOS version and Android Studio for the Android version? I know this is such a basic question but I've spent a couple of hours looking this stuff up and I'm still confused. Any help would be nice.
Thanks,
Daniel
In a product development environment, after writing the cross-platform code with Flutter, there are some need-to-do tasks related to Native environment.
In the case of Android, there are several cases when you'll need to touch the Native level such as config Firestore settings, Social authentication (Login with Facebook for example), changing the launch icons/ splash screen of the app or publishing to app store, etc
For iOS, the same case apply as well. So I suggest you start with small steps to develop the app first, then when running into something that seems impossible with just Flutter code, there are tutorials and SO to guide you through. It might seem overwhelmed at first, but we are all on a journey, so no need to rush it ;)
You should make small changes too. For eg when adding launcher icons and splash screen you have to edit the respective native folders. When distributing for ios you need to manually customize its Runner from xcode. There are many library that support either android only or ios only. In that case if you need that feature you have to make changes in native code like java ans swift.
if you're creating your own native plugins, you will have unique code to write. But if you're just using things out of pub, almost nothing will require change (unless you are publishing to the store).

Want to develop mini program with Flutter

Can Flutter dev mini-app or not? Like Wechat mini-app. Cos I dont want dev Native app. Spend a lot time. Mini-app is easier to dev.printf("%d\n", 42);
Flutter is a totally different thing from a "mini-app". Flutter is mobile application development SDK for iOS and Android while the latter is just a tool/service (more like wordpress).
Mini-app sounds like a massive privacy invasion. You are asking users to join another application ecosystem to just use your app.
You should list all of your requirements to see whether or not you need it.
Edit:
Developers are working to reduce build sizes for android instant.
https://github.com/flutter/flutter/issues/16833