eliud_core 1.0.4+21 copy "eliud_core: ^1.0.4+21" to clipboard
eliud_core: ^1.0.4+21 copied to clipboard

Eliud core

eliud #

Documentation for eliud is under construction. Please be patient.

  • Eliud technology is open source technology.
  • The technology allows to build apps and/or websites. Today, app content can include photo galleries, pages with videos and images (html), social media, chat with or between members, your shop / shopping cart, photo sliders, documents, and more. A complete list below.
  • Eliud is a layer on top of Flutter. Flutter is an open-source UI software development kit created by Google. Flutter allows to develop cross platform applications for iOS, Android and web. Flutter supports Linux, macOS, Windows and Google Fuchsia. This hasn't been tested with eliud packages yet.
  • For those who know Worpress: Eliud is to Flutter as Wordpress is to html:
    • Html allows you to construct webpages. However, html requires some level of technical knowledge about building webpages.
      • Wordpress and many other similar technologies allow people without knowledge of html to build webpages and websites.
    • Flutter allows to build websites and apps, or even Windows, Linux, macOS and Google Fuchsia apps. However, Flutter requires programming skills and technical knowledge.
      • Eliud allows people without programming skills and technical knowledge to build cross platform apps and websites.
  • Eliud is pluggable technology, allowing developers
    • to extend / add functionalities by means of plugins / packages.
    • to change look and feel through using styles.
  • A website / app built with Eliud consist of its core Eliud package + one or more Eliud plugins. The app is constructed by configuring it. Configuration, images and videos are stored in Firebase database and Firebase storage.

Example Eliud apps #

These are some example apps which demonstrate what eliud can give you. Everything used is open source, part of eliud project.

App Ios Android Web
Logo Juuwle - An online store for jewels Juuwle on the App Store Juuwle on Google Play https://juuwle.net
Logo Minkey - Community making apps online This type of app is not allowed on apple store Minkey on Google Play https://minkey.io
Logo Thoma5 - Profile of Thomas. Under construction In development In development https://thoma5.com

Quick start #

This guide are all steps to create a minimum android, iOS or web app with Eliud.

Whenever this note pops up in the below text, make note of this for what this is in your case, as you'll need it at some later stage. In the below text we provided this information whilst creating thoma5. Obviously for sensitive information, like passwords, we've provided fake info.

Step 1: Create a new google account #

  1. Goto https://www.google.com/account/about/
  2. Select "Create an account"
  3. Follow on screen instructions (recommended to use default settings)

Step 2: Create a new firebase project #

  1. Goto https://console.firebase.google.com
  2. Select "Create a project"
  3. And follow on screen instructions (recommended to use default settings)

Step 3: Configure your project #

  1. Goto https://console.firebase.google.com
  2. Select your project
  3. Select Project Overview > Project settings
  4. Select support email, which should be specified in step 1: Google account

Step 4: Setup Firebase database #

  1. Goto https://console.firebase.google.com
  2. Select your project
  3. Select Build > Firebase database
  4. Select "Create database"
  5. And follow on screen instructions (recommended to use default settings, start in production mode)
  6. With Cloud Firestore open, click on Rules and copy/paste the contents of firestore.rules

Step 5: Setup Firebase storage #

  1. Goto https://console.firebase.google.com
  2. Select your project
  3. Select Build > Storage
  4. Select "Get started"
  5. And follow on screen instructions (recommended to use default settings, start in production mode)
  6. With Storage open, click on Rules and copy/paste the contents of storage.rules and publish

Step 6: Setup Google Authentication #

  1. Goto https://console.firebase.google.com
  2. Select your project
  3. Select Authentication
  4. Select Sign-in method
  5. Select Google from Sign-in providers
  6. Enable the Google sign-in

Step 7: Generate key #

  1. Run the following command at command prompt:
keytool -genkey -v -keystore your_keystore_filename -storepass your_keystore_storepass -alias your_keystore_alias -keypass your_keystore_keypass -keyalg RSA -keysize 2048 -validity 36524
  1. Then follow onscreen instructions. Then store the key-file in a safe place. You will have to use it multiple times in the future.

  2. Now run:

keytool -list -v -alias your_keystore_alias -keystore your_keystore_filename -storepass your_keystore_storepass -keypass your_keystore_keypass

For example:

keytool -genkey -v -keystore %USERPROFILE%\\.android\\thoma5.keystore -storepass abc -alias thoma5key -keypass cde -keyalg RSA -keysize 2048 -validity 36524
keytool -list -v -alias thoma5key -keystore %USERPROFILE%\\.android\\thoma5b.keystore -storepass abc -keypass cde

MORE INFO


Step 8: Add Firebase Android App #

  1. Goto https://console.firebase.google.com
  2. Select your project
  3. Click 'Add app' and select platform 'Android'"
  4. Specify your android package name
  5. Specify your android app nickname
  6. Paste the SHA-1 key from step 7: Your keystore SHA1
  7. Press "Register app"
  8. Then download the file google-services.json

Step 9: Create Android Studio project #

  1. Start Android studio
  2. Select File > New > New Flutter Project
  3. Specify the location of your flutter SDK path and press Next
  4. Specify project name, location, etc..
  5. Press finish

IMPORTANT

The android package name specified in step 8 Your Android app package name - e.g. com.thoma5.thoma5_app - should be equal to the concatenation of organisation - e.g. com.thoma5 - a dot and the project_name - e.g. thoma5_app


Step 10: Copy google_services.json #

  1. Switch to the Project view in Android Studio to see your project root directory.
  2. Move your downloaded google-services.json file from step 8 into into your module (app-level) root directory, e.g. thoma5_app/android/app

Step 11: Apply firebase SDK instructions #

  1. Goto https://console.firebase.google.com
  2. Select your project
  3. Find your app from "your apps" section, then press "See SDK instructions"
  4. You get to chance to re-download the google_services.json file, skip this by pressing next.
  5. Now apply the suggestions provided. Make sure to select Groovy (build.gradle) and Java.

🤔 SUGGESTION 🤔

At the time of writing this document, the changes to make were:

file location add
1️⃣ thoma5_app/android/build.gradle buildscripts > dependencies classpath 'com.google.gms:google-services:4.3.15'
2️⃣ thoma5_app/android/app/build.gradle plugins id 'com.google.gms.google-services' version '4.3.15' apply false

:three: Then add the below at the bottom of thoma5_app/android/app/build.gradle


dependencies {
    // Import the Firebase BoM
    implementation platform('com.google.firebase:firebase-bom:32.2.2')


    // TODO: Add the dependencies for Firebase products you want to use
    // When using the BoM, don't specify versions in Firebase dependencies
    implementation 'com.google.firebase:firebase-analytics'

    // Add the dependencies for any other desired Firebase products
    // https://firebase.google.com/docs/android/setup#available-libraries
}


Cookbook #

In this cookbook we will create a new app from scratch. We continue from the quick start. We assume you're building an app for web, android and ios. Skip what doesn't apply to you.

preparations #

1. decide on the following

2. buy domain

example: squarespace.com

3. create google account

4. setup email forwarding

5. register for free gcp

6. Setup OAuth Client

7. Apple setup

8. Sendgrid setup

firebase #

1. create project

2. firebase database

3. firebase storage

4. authentication

5. functions

android studio #

1. android app

2. web app

3. ios app

run and deploy to app store #

1. android app

2. web app

3. ios app

overview packages / dependencies #

typical #

A typical app, here Minkey, uses the following dependencies:

Dependency diagram

Package Description
eliud_core This package
eliud_generator Eliud generator
eliud_pkg_apps Eliud package for creating apps through code, not gui
eliud_pkg_chat Eliud chat package
eliud_pkg_create Eliud create package
eliud_pkg_etc Eliud etc package
eliud_pkg_feed Eliud feed package
eliud_pkg_follow Eliud follow package
eliud_pkg_fundamentals Eliud fundamentals package
eliud_pkg_medium Eliud medium package
eliud_pkg_membership Eliud membership package
eliud_pkg_notifications Eliud notifications package
eliud_pkg_pay Eliud pay package
eliud_pkg_shop Eliud shop package
eliud_pkg_text Eliud text package
eliud_pkg_wizards Eliud wizards package
eliud_pkg_workflow Eliud workflow package
eliud_stl_mona Eliud mona style