Search

Mittwoch, 21. Oktober 2020

Recommended video online training for testing Angular framework

Hi folks,
many times i catch myself on the need to refresh my knowledge about testing methodology for Angular apps.

Can you recommend good workshop about Angular testing ?
YES!!!

Click here for the great workshop how to test Angular app!


Not convinced?
Watch this free example!



Dienstag, 20. Oktober 2020

Junior , Intermediate, Veteran developers?

 Developers are very different in knowledge and hard - soft skills.

Jakob Jenkov done great youtube about this topic , i have nothing to add its great and i consider that as my opinion for this topic too.




Samstag, 17. Oktober 2020

Hackathon in pandemic 2020 !!!! My experience! Hackathon Company GmbH presentation good, execution bad!

 Hi folks today i will write a short story of my experience during 

Hackdays Baden-Württemberg 


The Hackathon Company GmbH which is event organizer of this hackathon did good advertisement and i thought well i always like to participate at Hackathons and learn new stuff, lets try it!
The registration was without a problem, pretty simple!

What was this time different?

Well this time is full online experience, but 

1. Nobody of the participants was allowed to change and switch to another challenger.
2. Nobody was allowed to decide slowly with which team you think to participate at hackathon.
3. I was forced to cancel my participation at this event by Rayna Topalska Project Management  staff employee of The Hackathon Company GmbH.


She repeatedly through the Slack communication chat stated that i violated the rules , but i was pretty busy speaking to my clients via telephone (very important calls) and couldn't answer fast enough !


Hey the Hackathon Company GmbH ,

this is not democratic and not even welcoming experience, i don't liked to be pushed around and set in very unpleasant situation and you should take it as lesson learned! 


I even said it to  Kira Biernat Content Marketing Intern from the beginning of this event, so that i need to asset the "Challange" first before i decide and consider to participate in the challenge.


So what i learned about this Hackathon?

Ask the hachkathon organizers before actual hackathon starts,
maybe they are not experienced or even unprofessional and don't facilitate good experience for your as hackathon participant.


Conclusion:

Hackathon Company GmbH succeed at the presentation , but didn't succeed in execution of this event!


I can recommend Hackathon Company GmbH following:

  • 1. Be open!
  • 2. Be friendly!
  • 3. Don't force people to take quick decision!
  • 4. Respect that people different and every way you can only think!
  • 5. Understand is someone not motivated , he or she has good reasons for that!
  • 6. Hackathon should not be handled as project at job, it should be fun and relax experience!

Freitag, 16. Oktober 2020

My plans for future regarding online video training courses

My current plans for future regarding online courses


I hope you know , that i providing video online training courses if not then look up official company training and workshop service offering.


In my opinion, there is no silver bullet to meet all the challenges in real projects.


You as developer should be in consistent loop and always learn new technologies, but I will do my best to help you to reach your goal.
There a tons of different kind of tutorials already on the internet, but I think there some tech knowledge which not widely available,


I would correct this and produce the online workshops on purpose to teach you best industry practices so that you can apply it on your day to day job.


I already have plans for the future where I create and release some online courses.


Probably i will use following platforms: Udemy, Pluralsight , Youtube or even Vimeo, BitDegree

Dienstag, 13. Oktober 2020

Es ist einfach unglaublich was SAP und Telekom für die Entwicklung von CORONA WARNAPP von Gelder bekommen hat

Einfach unglaublich wohin unsere Steuergelder fliessen!!!!!

Ich schreibe es , weil Ich bin äußert entsetzt , was die Großunternehmen machen , nämlich für die Entwicklung von Corona WarnUp wurden unglaublich viel Steuergeld verschwendet und mein Unternehmen hätte nur mit den Bruchteil von dieser Gelder eine bessere Lösung entwickeln können!

Hier ist ein Artikel bei GMX über die Steuergeldverschwendung für Corona WarnApp!


Montag, 12. Oktober 2020

Learning Unity3D pathfinding API AI is fun

 Learning Unity3D pathfinding API AI is fun!!!

Here is example of my current learning progress!




Freitag, 18. September 2020

Cloud and stuff is not so much valuable as you think!!!!

I as IT professional i love technology and i used daily, but recent my experience with cloud did give me a second thought.

Why we all want to move our data from datacenter to cloud?
Sure cost factor is important, but really we just moving one problem place to another.

The most cloud providers are great, but i see in my projects a repeating problem cost managing , it just not transparent at all !

For reasonably small non commercial website based on java , the cost per month running on kubernetes and docker can be between ca.100 and 200 dollar's per month, this is not sustainable at all! How in the world it possible to run website which can be sustainable, i think the answer is to host own site on own hardware and in own datacenter or server room.

Sure i can establish a cost monitor alert in cloud, but really do we all have time to manage our websites like as we have other important things to do, i would rather pay for hardware maintenance on site and know that my hardware really give actual output, and if hardware fail than its my fault, but data is on site and security is on my behalf, but if done right you partially then go to cloud, but really to be 100 % depend on cloud is not sustainable thing.

Or maybe i just old school and don't use right tools to achieve the needed goal , but currently i say if you move to cloud big infrastructure, then think like what can go wrong and where the big danger exist when you run stuff in cloud, then you would realize that the danger is quite real and not a probabilistic one. Then your start to think, well i can blame cloud provider, sure you can do that , but really its your fault , that you didn't think about it clearly.

So what most business do?
Well they use codeless, and hope that the codeless provider manages all of theirs stuff, i see it critically and say you need to prioritize danger in your projects, if you don't do that , well at some point of your project, i 100% predict that you would run into similar of my problems of over budget and then you wouldn't have a backup plan of own infrastructure, so really think of it!

What backup plan should include?

1. Storage backup onsite

2. Backup of major mission critical apps

3. Make sure, you test the case when you lost connection to the cloud

4. Audit your software for security and optimization, less resource used and less money to pay it's that simple.

Conclusion: 

as long as i work in IT , i see it the pattern we develop and integrate something new and shiny , only later to throw it away and buy a new cool shiny stuff.

I think in the future we need quite different approach, services should have standards i mean unified API's which allow a painless transition from one cloud provider to another, but lets face it it would never happen , because all cloud providers trying to lock in the enduser and enduser should think first about own infrastructure, which give you as enduser the leverage against most cloud providers.

Montag, 24. August 2020

Vlog 7 work in progress my next major milestone

 Here is my latest work in progress: 



Dienstag, 11. August 2020

I start new community which have a goal to abolish bad practises of white board tech interviews in the world!

 Yes you heard me right !

I start new community which make an oath not to do and or participate at tech whiteboard interviews!

If you agree with this opinion go to the page of no white board tech interview community!

https://m12top1.wixsite.com/nwtic

Montag, 13. Juli 2020

I developing my own pc game title ! Theme of the game colonize and conquer the Earth!


Hi folks!

Finally i arrived at the point, where I can begin implementation of my game its very interesting state to be.

I took me awhile to get basic story and game mechanics of the game and well look at this first prototype:



This is by any means a part time project , I don’t plan to spent to much time on it , but i already booked time for it , so clients you know what i do when i don’t work for your project ;)

Why i chosen Unity3D?

Well Unity3D use C# programming language for all of the scripting work, and C# has big similarities like Java, and with my Java programming background i know how to implement the project, this would be really , really interesting.
So stay tuned, because in next month's i will release some new progress of my project!

Sonntag, 28. Juni 2020

2020 Germany. What company's demand in theirs job description from candidates for Java developer position


Hi folks!

Today i want to present a interesting report about what German company’s looking for in form of java technology knowledge from skilled and professional workers.

Before I present data let me describe how exactly I gathered this data and how many companies were analyzed by me.


For this research I used data from stepstone.de a largest job search engine German website.

As input were provided job title of Java developer, each job description consist the job requirements those were extracted and counted  as one company to many languages, 

the numbers represent the amount of company’s which put in the job description the requirements of knowing x,y,z particular language and framework.

How many company’s I looked for:  around 200 , why not to give concrete number , well I spent 2 days gathering and I am not sure that it was exactly 200 its way to much as I expected to see.
Lets see the diagramm!


Now to data itself, as always Java is a king and on the top, but C# and C++ are in demand too, strangely enough I saw more and more the requirements for knowing python together with java and other languages, how crazy the projects must be  if  the requirement for java guy must be good in c++ and python, this actually full stack developer with xxx salary (100K Euro bare minimum for skilled developer), some company should have balanced amount of workers the stretch and expectation way to large , then its humanly possible.

Framework wise, Spring Boot is a king 

some people would disagree, but as I much love Java EE and Jakarta its obvious truth in 2020 many companies look and expect from Java developer the knowledge of Spring Boot. I saw only one German company which actually demanded the knowledge of Jakarta Enterprise, which was one insurance company.

About Jakarta Enterprise in my opinion it’s in flux, the Jakarta Enterprise 8 is compatible to Java EE 8, but any new version there is huge difference, some folks in Jakarta developer community want to drop EJB, and I understand why, but this would bring for some EJB heavy company’s which depend on EJB and what I saw in job descriptions has given me the outlook that in the near future they would get into problems, because switching to new Jakarta would be painfully difficult  and costly to them, my advice to those company’s start to think now , before your applications would not be manageable and plan on big refactoring to Spring Boot or to new Jakarta Enterprise.


About GUI: Swing is alive and kicking, but company’s should think about deprecating and moving on to JavaFX, the reason behind such advice: Oracle officially plan to support Swing until September 2026 , here read the Oracle roadmap 
I just need to quote Oracle:
“Swing and AWT will continue to be supported on Java SE 8 through at least
March 2025, and on Java SE 11 (18.9 LTS) through at least September 2026”


Further Insights SQL and JPA and Hibernate are still in common use, using ORM abstraction layer is good thing, but I saw actually in one description that one company seeks candidates with knowledge of JDBC and this make me sad, JDBC is great , but really in 2020 we should have trust in ORMs.

What about cloud?

It seems, the Google Kubernetes and Docker are default nowadays, some cloud vendors probably would disagree with me, but you can’t deny the fact that many company’s who have applications in cloud use Kubernetes and Docker and its very important to them to have highly educated people, which can use such technologies on daily basis.
Positive note: Junit is de facto standard and many, many ,many companies demand clean and test driven development, this is very good and I hope they know how to write test, testing software before and after going into production still very crucial.

What about IDE?
Haha, Eclipse is on top, oh sure Netbeans and Intelij are in demand too, and in my opinion you should know all those 3 IDE’s. What I personally prefer? Well I like the Eclipse, but it has strong roots from my university experience and your experience maybe different to my.

What about Java Script?

This is actually most disappointment fact to me , way to much companies use Angular and I know Angular is Google product, but really Angular in 2020 , does your company burn so much work time and still like to have those curves where developer for weeks stuck and struggle through npm and typescript madness? Come on switch to VueJS, were common sense and testability and overall better quality.

Speaking of fronted (JSF not dead!):
JSF is not dead, there many company’s which demand knowledge of this JEE framework, I like JSF because of consistency of the technology , sure this technology quite old and demand to have good and powerful server for serverside rendering. JSF done right is a beauty, but in many cases people who switched from JSP produce very unclean code which is hard to maintain or even to test, still this is what market demand and I am looking into JSF once again, but only on Jakarta implementation.

What about SQL and databases ?:
Many companies demand knowledge of Oracle or Postgre or Microsoft SQL and tiny minority of MySQL.
Personally I try to stay away from databases, for me its just a container where I read and write my data, I don’t want to spent well to much time of design my db or even build around a application for the database , my solution have many options and its include different types of storage inmemory, harddrive, database and other storage devices ;)

Version control?
Git its obvious choice of many companies, but some still use SVN and subversion, come on people start moving into git and make archive from old svn and subversion.

Devops?

Jenkins, Kibana, Kafka, Elastic Search all on the list but there I see big development not quantifiable data applicable. Jenkins is de facto standard for building your software in CI/CD pipeline, but sometimes the effort of keeping its alive way to costly and don’t make any big sense to me , but its good to know about options. Other stuff as usual, there way to many tools to make any conclusive decisions, each company prefer different sets of tools and i think to understand who is winner well the market still green ask me exactly in 5 years the same questions again and I hope to give you better answer.

Any functional languages?

Skala , but the demand in what I saw about functional is way to low , nobody write in the description of knowledge of Clojure which sad (because I planed to learn Clojure and now I need to change my plans, i probably learn Python instead :) )

What about SAP and Hybris?

Well I am not a SAP specialist, but I saw some demand on Hybris and well I don’t think that’s is profitable invest your time in learning Hybris , because the mentality of SAP as company and vendor locking, read more here about Hybris , in my opinion framework should make your efficient in your business and not let you dependent on them , but as always your experience can be  very different from my. If you seek a easy customizable framework maybe you should try Oracle Apex which actually allow you easy to extend your business processes.
On this note I can say SAP has own and unique universe and if you one day get into you probably wouldn’t be able to get out, so be caution you was warned ;)
What type of development type German company’s prefer?

Its good to know , that many companies use Scrum or Kanban, but still Waterfall and V models exist!
In my opinion its all about humans, if humans are not productive in any of systems, you as company should work with humans and strive for the best optimum solution for humans and not for company, you will be amazed how then the efficiency will improve if people work in the best setup for them.

Something unknown topics?
Well as usual there more data to analyze , like Salesforce usage and knowing  of  zephyr, power bi, Prometheus, sonarqube, bamboo, dynamodb, liquibase and etc.

Summary: Spending time on market research for small portion of data which I was able to gather give me quite interesting view on current “market” and I hope you will too see the change, we definitely in java world develop less and less new systems and most times will work on old and legacy systems and now and them refactor them into small microservices (only when it make sense in business terms!) , cloud services really in demand and many companies probably plan to move theirs datacenters into cloud , but word of caution your data is valuable make sure that you have something on site where you assets are protected and backed up.
The last part is challenge for developers, we moving way to fast as industry JS especially is crazy in lots of different JS frameworks , but sticking to Angular is no way a good decision, many devs will disagree with me and that’s ok I saw the data , but the efficiency in Angular projects is way to low, many Angular and Java Script devs stuck at some point of development , they cut corners and do hacky stuff, which is not proper solution and I predict we as industry feel impact in the next 5 years  of badly designed and bad maintained Angular based solutions!

Final thought about the market state:  writing tests is in broad usage and for those who dont write tests you should  explain to your managers, that without test’s nothing will work properly and business will see huge impact of defunct system which eventually will result in bad financial situation for the company. 

I finishing this blog on positive side we Java developers already understood the problem and we write lots and lots of test to be able to improve quality of code on daily basis, java script developers can and must learn from us alot and we should teach them the proper software engineering skills , so that even our fronted ui will be stable as the backend.


Samstag, 20. Juni 2020

My journey through design patterns in Java!

As Uncle Bob says, if you call yourself a professional programmer you should "educate yourself and teach others".

I add only to this statement following: so that new generation of developers would be aware of advantages and disadvantages and would be able to make rational decisions for their software projects.

What book i used for my design patterns journey:



This book definitely is "easy ride", even code which is provided by that book is easy to read and to understand!  (I speak from view of  seasoned developer with many years o experience)

So i refreshed my knowledge about design patterns in Java , what about teaching other people ?

Here you have completely  free workshop on youtube where i explain and show in code the solutions for each of the design patterns explained in the book!



If you know c++  thats cool and great!!
Do you want to get even deeper understanding, then i recommend to read this book !



Where i go from here?

Well now, i  am clearly understand most common design patterns,

Here is my list of actual stuff in making:

1. I have one big project to implement which is a game in Unity3D 
2. Help my clients with their projects 
3. And i 100 % definitely  try to read another great book about Java, which is Effective Java by Joshua Bloch !
4. Create another youtube series: "Why the whiteboard tech interviews should be deprecated and damaging the industry overall" and provide my own solutions to "Cracking the coding interview" book

In future youtube series i would tell the world that:

1) Writing programming solutions on whiteboard is stupid and not applicable in real software engineering world, yes we use whiteboard but not for the writing code rather most time for explaining concepts and ideas, only "stupid" tech leads or crazy developers do that and only because that they brain full of "garbage" and to show off, nobody take them seriously or understand well, but they most times likely responsible for project delays and bad code......

2) Your company is not google!!
Repeat after me: Your company is not GOOGLE! So stop to pretend to be a one!


3) Some senior developers have no clue what people learn in universities when they study computer science or related to it degrees, they claim university fresher should know that and that, but in reality many universities are far behind the industry in some cases like 10 years behind the current industry standards! I know it from the first hand, because i study computer science (part time)

4) Nowadays we have companies and people who write "stupid books" about what a good candidate should know about the programming language and the frameworks, why i call it stupid ?

Because in university , there no time to learn so much amount of knowledge what most software company wants!
Those guides books like the book of author Gayle Laakmann Mcdowell will be deprecated, candidates who reading such books just losing theirs valuable time instead of doing some real work of study and implementing the knowledge into the field !

So we developers with experience should refrain from such bad practices and do more homework ! I even think of putting a clear oath that i as programmer never use whiteboard to interview the candidate for the assessment of his or her knowledge and i would assets only on actual learning skill of the candidate trough pair programming interview.

Some of the developers maybe asking themselves, we have such big shortage of developers how we can close the gap without loosing the productivity? Each new developer must be introduced to the project and it takes far too long to do that.


I know the answer:  provide good online tutorials , during the covid19 crisis you have lots a free time and by doing that you will teach many, many  people and gain respect from your fellow developers and don't be afraid if you do mistakes, mistakes are natural with all what we as humans do.

When you actually interview people do it in pair programming style, give them a task and watch how they solve it and help them if they stuck, if a candidate can't write good quality code, then its obvious that such candidate would  be bad match for company , but if you see that candidate quick learner and that he just need small push ups to reach the goal, then you have the right candidate and only then and here i strongly repeat myself and only then,  allow HR to do a personality and cultural fit tests.
I tried this approach and its 100% perfect that such approach of hiring candidates produce great results!

Ok, enough ranting ;)
We should think positively and do anything in our power to close the developers shortage gap, i personally think and plan to give lectures about software industry in universities around 2025 , so the students of the future would basically started to learn about the industry sooner that it was in the past and i encourage any well experienced developer to do that ;)

Montag, 18. Mai 2020

My next milestone in learning Unity3D has been reached !!!!!


The course of Jonatan Weinberger provide definitive quality and no I don’t endorsing his work by any means, I just speak from my personal experience, this not a course review but if you ask me how to learn Unity3D:

I say this course is one of the best options which can teach you about Unity3D game development, be aware that you need basic C# programming skills and don’t be afraid to read manual and apis docs of Unity3d 2019 version and try and try and try things out, because for post processing some adjustment from view of a student needed , but it is not big hurtle , because Unity3D have good documentation and overall great community and make sure that you treat this course like real work, it’s very work intensive.

Let’s go back to my main topic, status of my learning of Unity3D, I think,  I have reached the point where I can confidently claim ,

that I can develop Unity3D based game and I delivered the proof and  still there some unknowns about the Unity3D Engine (creating assets and make them look good and importing of fbx from CityEngine ) and how practical it would be to write the game in test driven development, definitely I must go into preproduction mode of developing of my own game and it will take time:
I will use scrum methodology to execute this project:
1. Write stories 
2. Discuss them with team members
3. Create prototypes and show them to the public
4. Gather feedback and prepare pipeline for the milestones

It will be very interesting!


Here proof that i Alexander Freelancer developed and created a prototype during course of Jonathan Weinberger:


As always stay tuned, in my next blog I will write some major news about my future game.


Donnerstag, 14. Mai 2020

My current advancement in learning of Unity3D - Spaceshooters 2D game


Hi folks, I would like to report of reaching my next learning objective in Unity3D!

Thanks to Jonatan Weinberger Udemy course, I was able to test my knowledge about Unity3D usage and it did come out pretty good on my side!!!

I use currently Unity3D version 2019.3.1.13f1, which have some issues, like color picker bug in  windows (I was only able to workaround it and activate it through windows registry  “fix”, furthermore I learned how to apply high quality post process effects in Unity3D 2019 project.
I tried to generate this project in webgl build in Unity3D, but I got always strange webasm error, but if I created empty new Unity3D project than it did worked, so probably some issues with my 2D project,  so no web version for you evaluation people ;)

Some folks sometimes ask me for the source code of the projects which examples i present on my youtube channel.

I want to stay safe and make following statement: if you sign up to Udemy course of Jonatan Weinberger you will get the sourcecode directly from course author, actually it’s a part of learning process, other projects source code can be aquired by sign up to Unity learning portal.

This is definitely better
, then trying to refactor code of the project to your current version of Unity3D Editor.
What I observe in short amount of time working with Unity 3D, that it's in continuous development , so some assets in the asset store would be deprecated , because they would not work properly with newer version of Unity3D.

In my opinion constant change is not so bad , we people who work in IT field must constant learn new stuff and try to solve the problem with common sense and best available tool and of course teach young generation, because leaving an old rigid system does not provide real value to company and the country which you live in.
Back to my learning state : here is my latest build of the 2D game prototype:



My next step is to complete the course of Jonatan Weinberger by creating next training project which a 3D game and then after the course material is done , start to design my own game and prepare the estimates for my new project and creating assets and discussing concepts with people of my inner circle and trust ;-)

Please note: here is Github repo, where you can find usefull shortcuts during your Unity3D development.

So stay tuned for more!

Samstag, 9. Mai 2020

Uncle Bob Martin - The Craftsman's Oath

Hereby i state following :

1. I will not produce harmful code
2. The code that I produce will always be my best work.
3. I will not knowingly allow code that is defective either in behavior or structure to accumulate
4. I will produce, with each release, a quick, sure , and repeatable proof that every element  of the code works as it should
5. I will make frequent, small, releases so that I do not impede the progress of others
6. I will fearlessly and relentlessly improve our work at every opportunity and i will never allow it to degrade
8. I will do all that I can to keep the productivity of myself, and others, as high as possible. I will do nothing that decreases that productivity
9. I will continuously ensure that others can cover for me, and that I can cover for them
10. I will produce estimates that are hones both in magnitude and precision. I will not make promises without certainty
11. I will never stop learning and improving my craft.


Freitag, 27. März 2020

Zu den neuen Ufern! Unity3D ! fold .it und etc

Hi all !

Meine Kunden fragen mich warum Ich immer seltener neue Aufträge bereit bin zu nehmen, nun es gibt zwei wichtige Projekte bei mir , einmal ist die Entwicklung von eigenen Computerspiel basierend auf Unity3D und einmal die Situation von Covid19 Virus und mein Kampf mit hilfe von fold.it , da arbeite Ich fast täglich an einem Protein welche diesen Virus blockieren wird.

Welche Projekte von Kunden kann Ich in der Zukunft übernehmen?
Höchstwahrscheinlich nur noch Flutter ,VueJS, Unity3D und ab und zu Bug reparatur bei grossen Java Projekten, wenn jemand mich für ein langfristiges Projekt beschäftigen will so müssen Sie bereit sein über den üblichen hinaus mir bezahlen zu können es ist auch nicht nur die Frage von Geld, sondern auch von der Zeit , welches aktuell mir zu wenig steht , weil  ich habe ständig laufende Projekte und bilde mich kontinuierlich und planmäßig unabhängig von jeweiligen Situation weiter.

Fazit:  Meinen Sie wirklich Ernst mit der Zusammenarbeit mit mir, dann bestellen Sie über meine Seite oder mein mobilen App die Dienstleistungen und schicken Sie Ihre Projektbeschreibung mir zu.

Ich wurde gefragt ob Ich aktuell die Interesse an einer Festeinstellung habe,  ehrlich gesagt mir es die Gedanke viel zu wieder, ja Ich muss es ehrlich aussprechen, meine Plan für die Zukunft 2025 eigene Firma zu gründen und bis dato soll alles in die Richtung funktionieren. 

Ich werde weiterhin für Sie nützlich werden, aber erwarten Sie nicht die Festangestellten Verhältnisse , weil Ich bin nach wie vor ein eigenes Boss und Unternehmer! 

Donnerstag, 19. März 2020

Twitch stream!

Hi folks , due to the emergency situation with covid 19 virus, i decided using software fold.it to fight agains virus!
Support my fight at patreon and watch my stream at twich today 19.03.2020 from 11:00 to 13:00 PM Berlin time.

Montag, 2. März 2020

The Flutter retrospective , 2020 mobile app development


The Flutter retrospective

As experienced German full stack developer (Java Enterprise and Java Script) I kind of hesitated to jump on the “hype train” with all that mobile development for Google and Apple app store platforms, remember all those web days with Angular , React, VueJS ? ;)

After watching my favorite senior freelancer Stefan Mishook and his thoughts on Flutter I decided to invest some time in developing my own freelancer services app.

So what’s special about Flutter platform, well let’s look at this comparison table (image origin from Udemy instructor Maximilian Schwarzmüller)

As you can see from this comparison, Flutter is the most supported and hardware optimized platform. Flutter can generate mobile app for Android and iOS  operating systems and its possible to have one codebase for Google Play store and Apple App store.


Lets look at Flutter architecture:
(image origin from Udemy instructor Maximilian Schwarzmüller)



It’s kind obvious that it's really fast, because the engine was written in C++ language and C++ performance (when it’s done correctly) is without a doubt have most efficiency in regard to app responsiveness.

So what you need to start?
I won’t describe the complete tutorial how to setup the dev environment but I can mentioned, that you need a latest Flutter and Android Studio with Flutter plugin which both available for free, just google it ;) (If you use Windows 7 you need to install power shell 5.1 or your dev environment won’t work properly)

In which language your write a typical Flutter App?
The standard for Flutter is language Dart , which pretty familiar to Java or C#, but don’t think it’s the same because Dart has 'strong way' for functional programming, and I personally wasn’t prepared to program my project in functional style. ;)

If Dart more functional language how do you save state?
Well pretty easy ! ;)
class Form extends StatefulWidget
{//here you simple return the StateOfFormForXXX}

class StateOfFormForXXX extends State<Form>{
   // here you define all elements which need to hold the state  
}

The class Form instance you put into another class where all main ui elements are displayed.

But how do you pass values from StatelessWidget?
That was tricky one I spent some time to figure it out (StatelessWidget class can read the user input), what happening and it was interesting that in one and the same class events writing in one and the same variable can’t read the previous value, so StatelessWidget is really stateless in Dart language ;)

To make story short let’s think in form of following example suppose we have two classes one is Amunitionforrockets and Rocketlauncher

class Amunitionforrockets extends StatelessWidget{
   //some work of loading rockets into ammunition
   //Here I do call for rocketlauncher when ammunition is loaded
  child: Rocketlauncher(rockets);
}
class Rocketlauncher extends StatefulWidget{
//Pay attention here I pass the values to constructor
final Rockets rockets;
Rocketlauncher(Rockets loadedrocketsfromammunition)
: rockets = loadedrocketsfromammunition;

@override
StateForRocketLauncher createState(){
 return StateForRocketLauncher(rockets);
}

So basically the Stateless Class receives values from another class trough constructor and the Stateless Class do the same and pass it to the Class which is Statefull. If you really need to manipulate the values before it reach the expected class, then you need to introduce and pass values again via constructor to this class and so on.

Some people from functional world would say so what?
And say this is how it supposed to be.

For me personally, with more OOP experience I say:
I don’t like to create unneeded classes for the state.
I prefer to have clean architecture where each class do only one function and that's it, but with such approach I need a stateless class for ui and statefull or state class for the state of the ui, in Java in my opinion it's more obvious and well thought, but each developer do own software design style most times software engineering decisions are influenced not by the own tech decision , but rather pushed from boss pressure, like for example : "We need to push the deadline!, We can deal with minor issues later!"
I think having too much classes, did bothered me a lot during the development process in Flutter and i promise to myself to read the book 
Flutter Clean Architecture: The next level of your effective Android\iOS coding with using Flutter! 
for my next Flutter project. ;)


The result of my work is great! ;)




Does flutter have good documentation and community and plugins?
YES, YES, YES, the documentation is great , the community is welcoming Flutter new and shiny after all, plugins are amazing for example I used for video player, for displaying checkboxes and etc and did worked out of the box, most times third parties are BSD licensed plugin so its ok to use them in close source projects.

Does Flutter have a future ?
Well if Google wont dropped it one day, then I can imagine it would be a defacto standard for mobile development, Google should invest more in testability of the Flutter, I did experienced some problems writing tests for Flutter but with a lot of effort I was able to get around of it.

Conclusion: Writing native Android or iOS app’s will be from now on a special case and not the common thing. 

I decided for my current and future clients, there no obvious reason to do a separate development for Android and iOS (maybe in case of writing mobile games were the performance must be a king). 

The learning curve is not so steep as it was during my experience learning Angular, I really enjoyed writing in Java familiar syntax

One last thought: does Flutter can kill the webapp development?
This is already happening other competitors like VueJS offer a NativeScript as “one killer” solution which allow you not only create webapp but actually to generate a mobile app.

Future in web apps and mobile apps development start to merge 
and there would be even more challenges to develop and test it properly and with that I conclude with following advice to my fellows developers : make sure that the whatever tool you use in your company can satisfy your current company requirements for solving the domain problems and make sure that you able to produce clean code with almost 100% test coverage, if one of this criteria are not met don’t use “new” tool for your current or future project , because adding new shiny stuff can cause real problems, there will be always a big danger of choosing wrong tool for the current job and managing tools and understanding the domain problems of your company is a mandatory for your as professional developer , because at the end of the day you wish that all works fine and nothing breaks even if you on holidays, your phone shouldn't ring and you should enjoy your vocation......

P.S My Flutter notes (references links to other useful resource which i used during the development process)

Blog-Archiv

Blog readers favorites