Fastest way to make a UI for a flutter dev? - flutter

We’ve got a project to convert our existing browser extension into a flutter app, however I’d like to do the UI design component of this myself so that I can provide our freelancer with something to work with, I know exactly how it should look in my head already.
I was looking at Adobe XD, I know it’s got a flutter extension. Is this my best bet or is there something better? I basically want to build the entire UI of our app, and give it to our freelancer for wiring up and programming. Ideally it’d be fast to work in, as we’re trying to offload this piece of programming to a third party so we can focus on the extension programming. Or are none of these tools any good for this sort of a task?

The best workflow I had up to now, was:
UI/UX Designer makes the app ui in Adobe XD.
They upload to Zeplin via Adobe XD
I get all assets etc from there and use this to make the UI on my own with Material Components.
Using the XD plugin that generates flutter widgets, is bad and should be avoided.

Related

Advanced features with Flutter Driver (or Silenium/Ghost Inspector)

Looking for a UI integration test strategy for Flutter. We'd love to use Silenium/Ghost Inspector but seems that is not practical due to lack of html id's or CSS classes in Flutter (Add id or name property or other means of identification for Flutter Web applications?). Or has anyone found a way round that?
In the meantime Flutter Driver has only very basic documentation for simple tests like finding a button and pressing the button. Anyone know if I can do other operations like navigate to a specific page (e.g. using a # url fragment), test a link which leads to an external site, check visual setup of the page against an image, and other such tests which would be standard in Silenium and the like.
Thanks!!
Well seems Flutter Driver is still very limited so I have instead found a strategy for using Selenium, posted full details here:
Strategy to use Selenium browser testing with Flutter Web apps

Is it possible to integrate a Browser engine to a custom Browser interface?

Recently I was reading an article about "Browser Internals" and suddenly this idea struck me.
What if I create my own Browser?
So, I have two questions with me.
Question 1:
Is it possible to integrate an Open source Web Engine like "Servo" or "WebKit" to my custom Browser UI interface created using QtCreator or Visual Studio?
Question 2:
Is there any other components that needs to be inserted between the UI created using C++(QtCreator) and Servo or WebKit?
Note:
I am a complete beginner to this field and these questions were asked in a curiosity to learn internal stuff. Pardon if the Questions were not standard.
Thanks :)
Answer 1:
Yes, it is possible. Browser engines have public APIs to provide a way to embed them. For example, the goal of this little project was to present how to build up your own UI interface (using Aura) and wire Chromium (browser engine) into that.
http://szeged.github.io/sprocket/
Answer 2:
If you prefer Qt technologies, then QtWebEngine will be the solution. The intent of this module is exactly what you have described: to embed Chromium engine into Qt applications with hiding its most painful parts and provide convenient API to customise your browser application.
http://doc.qt.io/qt-5/qtwebengine-overview.html
And there are several others:
QtWebKit: http://doc.qt.io/archives/qt-5.5/qtwebkit-index.html
CEF: https://en.wikipedia.org/wiki/Chromium_Embedded_Framework
You don't necessarily have to use extra layers between your application and a browser engine, but if you are a complete beginner, I would highly recommend that.

How to build plugins style web platform with angular2

The idea is not new, like Wordpress, Oxwall : a platform created by some guru guy that allowing other dev guys to add new apps (like forum, blog, market-place, whatever) into the platform easily. By easy, we mean either just install new plugin by upload or less user friendly coding new plugin without changing the core code.
Actually, we have a working solution with angular1 but quite clumsy, that's it, multiple stand-alone ng-app within a website, like:
domain.com/forum-spa
domain.com/dating-app-spa
..etc..
Good thing about it is quite straightforward to implement, not much to worry about lazy-loading. But we are not happy with that approach for many reasons.
Angular2 is really close. We hope it can bring a better solution for building a large web platform
iframe
custom components that are added at build time that are added depending on user data like explained in Angular 2 dynamic tabs with user-click chosen components
This approach is compatible with the offline template compiler
There is also a more flexible way that supports user-provided component templates How to realize website with hundreds of pages in Angular2
This approach is not compatible with the offline template compiler and requires the Angular parser and compiler to be included in the build output.

What Did IMDB Use to Code Their iPhone Trivia App?

Their app is very well done, however doesn't seem to use any of the normal controls that come standard with the framework. Now it could be they just did an excellent job of restyling those components, but I'm thinking they used something like Adobe Air or something to code it which I think is allowed now whereas it wasn't in the past.
If anyone has any insight I'd really appreciate it!
I would wager that most of the main UI is done as HTML and rendered using a web view. The rest looks like standard UI with custom images.

Best practices for designing GUI in GWT

I have recently started studying Google Web Toolkit. I have went through some walkthroughs, and I think I understand the basics and the idea. However, I have some questions on the overall architecture and design of the applications.
Let's start with the GUI. I want to build a "common" web application, where the user first sees a login page. After successful login, the user is redirected to some kind of index page and a menu is added. I created a new LoginComposite for the login page, and tried to design a nice looking HTML table using the GWT Designer. However, I find that really hard to do, as you cannot set any individual properties on the individual cells (TDs)? There's no way to specify colspan or rowspan, and I can't set any padding or margin on the cells themselves. In short, I know exactly how I would have written the HTML code, but I can't translate that to the designer. Is that just me?
Also, I am wondering about the best practice for code layout and design. I went through the StockWatcher tutorial, but that's really not a very realistic web application. For example, I would like to know how I should design different forms (should each be in a own class inheriting the Composite-class)? How should I switch between forms (for example, first a list view, then a form for editing a chosen item from the list, then a totally different page)? If I have one Composite for each page, and instantiate them when needed in my EntryPoint, would that mean that the client will download all the JavaScript for all those Composites at page load? Should I stick with only one HTML page, or should I have many?
These are questions not really covered by any GWT tutorial. If anyone know a good example of a "real" web application built using GWT, I would love to see it.
Thanks for your input!
There are a whole bunch of resources in Google IO talks. For example:
http://www.google.com/events/io/2011/sessions/high-performance-gwt-best-practices-for-writing-smaller-faster-apps.html
http://www.google.com/events/io/2011/sessions/highly-productive-gwt-rapid-development-with-app-engine-objectify-requestfactory-and-gwt-platform.html
http://www.google.com/events/io/2010/sessions/architecting-production-gwt.html
http://www.google.com/events/io/2010/sessions/architecting-performance-gwt.html
http://www.google.com/events/io/2010/sessions/gwt-ui-overhaul.html
http://www.google.com/events/io/2009/sessions/EffectiveGwt.html
Also, don't expect to be able to edit absolutely everything if you are using the GUI to build your GWT app. Good luck!