Skip to main content

A long journey before i going back to other platforms


That's a long journey for going work on mine other projects due to i participate a startup mate together work on a startup projects. In the projects, i learn and workaround back-end framework in many of languages ( due to private work cant show too much code ). Also i does self-taught some front-end frameworks by learn from mine front-end mate's code & re-base using flutter. It was taken about half of a year to build up a proper back-end server due to inexperienced of my skills and technique so take time to learn.

I have also played around many frameworks such as
 

Back-end

  • ExpressJS - Most basic of the back-end frameworks
  • NestJS - A progressive Node.js framework for building efficient and scalable server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) heavily inspired by Angular
  • SailsJS - A MVC framework inspired from Ruby on Rails, have a really good structure and newbie friendly
  • HapiJS - Quite same with Express but more extensible and have a big of community built many of plugins
  • Fastify - Fastest framework in javascript, they also have the comparsion benchmarks.
  • Nancy -  Lightweight web framework for .NET C#
  • ASP .Net - Open source web framework for building modern web apps and services with .NET
  • Laravel -  The PHP Framework For Web Artisans, quite newbie friendly.
  • Yii2 - The Fast, Secure and Professional PHP Framework, have a quite same structure with SailsJS.

Front-end

  • React-Native - build real mobile apps with react-native using ReactJS built by Facebook Developers Team.
  • Flutter - using a different oop languages 'Dart' to build mobile apps built by Google.

With these frameworks i have take a long time to choose which should i use and which better, due to the ORM / ODM ( Object Relation Mapper, Object Document Mapper ) different on different frameworks too. And for a back-end developer must know many thing such as services like firebase, architecture such as microservice, monolothic. They still have many thing i doesn't introduce here cause i will introduce by post due to busy so haven't post at this time will only introduce some better and important things.


Firebase is a very very good services for back-end & also support front-end. They also provided by google. They support authenticate managemenet, realtime database, analytics, dynamic links, and too much they have supported.

module.exports = async (req, res, proceed) =>
{
    const header = req.headers['x-firebase-token'];
    if (header)
    {
        try
        {
            const verifyResult = await firebase.auth.verifyIdToken(header);

            req.firebaseUser = verifyResult;
            return proceed();
        }
        catch (error)
        {
            return res.unauthorized(error.message);
        }
    }
    return res.unauthorized('Firebase token header required.');
};  

This was mine one of the sample usage by verify incoming request headers and check is the users registered or is valid to make a back-end api call. And for realtime data, you can think a example like when you update something and u must update it to the client as fast as possible and without refresh the page, mostly u can think a chart.


Flutter is a good framework too since it provided by google so community expand quite fast. I would use it to build for my FYP apps so i have structured a sample projects inspired from mine front-end developer startup teams using Redux & Selectors & Thunk & Navigator. Redux mainly for state management of whole apps and use the state anywhere in the components. Selectors for filtering data in the state. Thunk for action middleware for dispatch async action like api call. Since flutter is using 'Dart' a oop like language so i would more like to use Flutter instead of react native.

Every of my containers have that structure, its look like redux with react. But for navigator & reducerInjector quite different in react native will be easier, in flutter must be defined all of the reducer. Navigator also need to build a middleware for it to work with redux ( posted by flutter groups already ).







Depends on personal who love which structure and language and choose your favorite framework, these 2 framework is really good at all.

I would like talk to here others, i will post at another post to explain longer about the framework & other platform i have touched such as game development, arduino, apps, ++.

Popular posts from this blog

Backend Developer & Development [ Part 1 ]

Backend developer is a develop who maintain the work users /  clients can't see such as processing transaction, data structure, data transfer. These works would contains in a API server and API server contains many endpoint that can call by anyone but only success when fulfill endpoint requirements so it is secured. API Server also know as REST API ( Representational State Transfer ). It's processing like client request to server & after server process return response to client. API Server is develop by backend developer and this api server can be many type and different language, different framework such as Ruby on Rails ( RoR ) using Ruby Python PHP ( Laravel & Yii2 ) Java ( Spring ) C# ( ASP.NET & NancyFX ) Node.JS ( ExpressJS, SailsJS, HapiJS, NestJS, FeatherJS ) Different framework have their own advantages and can be used on different projects based on their features and usage. In the development not only choosing frameworks also need to ch...

Local Development | LAN [ Local Area Network ]

Before an application, website, backend server, frontend app or any application required to integrate with another platform, how you work with your friends? Put all in one computer for testing?  Upload to a free hosting for testing like Heroku ? If your team able to work in same place, i would suggest hosted own local network for testing at least faster then using other free platform like Heroku. As of improvement of technology, nowadays network interface card ( NIC ) would have a feature about HostedNetwork. You can host your local area network ( LAN ) for your friends and they can access your works and testing at their own computer and fix would faster the development. In Windows You can use command prompt and type "netsh wlan show drivers" and check is "Hosted network supported : ". If supported you can create your local area network by using command "netsh wlan set hostednetwork mode= allow ssid= YourAP key= YourPW ". YourAP  = Acc...

Coming back to MinecraftAPI

A long time for stop developing minecraft plugins due to busy about university and side works. Coming back from a long learning journey, i decide to recode my personal minecraft api for upcoming new server. Found that the code now i can build it with more structural design pattern. Such as MinecraftAPI interface class for runtime reloadable content. package me.oska.core.abs; public interface MinecraftAPI { void register(); void unregister(); void intialise(); void teardown(); } Also i have updated my reader utility code for reading jar class with functional interface make it more flexible. package me.oska.core.util; import me.oska.core.OskaCore; import me.oska.core.lambda.VoidAction; import org.apache.commons.io.FilenameUtils; import java.io.File; import java.net.URL; import java.net.URLClassLoader; import java.util.Enumeration; import java.util.jar.JarEntry; import java.util.jar.JarFile; public class ReaderUtil { public static void readJAR(File fold...