Multi Translator build with Flutter, It developed with DDD (Domain Driven Design) principles.

Overview

Multi Translator App

An app utilizes to translate any text to multiple languages.

Codemagic build status


Features

  • Localization
  • Multiple Translation
  • Single Translation
  • Deep Links
  • Translation History
  • Translation Share & Copy
  • Reminder Notification for Translation History
  • Auto Language Detection
  • Listenable Translations

Domain-Driven Design

Domain-driven design is a concept in order structure software projects and maintain the domain layer of the source code by Eric Evans. For further reading, here. DDD is robust, solid & be applicable to various fields of software development. Thanks to DDD, massive projects are much maintainable with its principles.


Flutter with DDD

In Flutter development, DDD might be used with different state management libraries; such as BLOC, provider, redux... This project uses BLOC. The directory of the project is mainly seperated into 4 subdirectories: Application, Domain, Presentation, Infrastructure. Each subdirectory has a valuable role in DDD. Every one of them should be considered as a layer of a building. Some layers contact other layers, some do not. For further reading, here.


CI/CD For Flutter

Continuous Integration and Continuous Delivery is an one of the most essential topics of software development. For mobile development, it strongly depends on SDKs and platforms both iOS & Android. This project uses Codemagic CI/CD configuration without any addition to source code. For further reading, here.


Deep Links

Multi Translator App supports deep links for both iOS and Android. Deep links are useful when navigating the app from outside of it. This app takes two different parameters by deep link for translating. Also, Flutter supports universal links as well. For further reading about Deep Linking here.

Parameters

  • text
  • lan (default: en)

Example - 1

Parameters

text=hello

Command for iOS Simulator

xcrun simctl openurl booted "ibksteltranslate:translation?text=hello"

Command for Android Emulator

adb shell am start  "ibksteltranslate://translation?text=hello"

Example - 2

Parameters

text=merhaba
lan=tr

Command for iOS Simulator

xcrun simctl openurl booted "ibksteltranslate:translation?text=merhaba&lan=tr"

Commands for Android Emulator

adb shell am start  "ibksteltranslate://translation?text=merhaba&lan=tr"

Setup

This project uses generated files to run. Before running the app, please run.

git clone https://github.com/stelselim/translation_app.git
cd translation_app
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs

Run

Runs the project.

flutter pub get
flutter run

Test

Runs unit tests.

flutter pub get
flutter test

Authors

ūüϧ Selim Ustel


You might also like...

A community-driven hot deals sharing app developed with Flutter.

A community-driven hot deals sharing app developed with Flutter.

hotdeals-app hotdeals-app is an online marketplace app developed with Flutter. The app's Backend can be found here. Table of Contents Screenshots Feat

Jan 4, 2023

A collection of Flutter Widgets that make multi screen user experiences easy to build

A collection of Flutter Widgets that make multi screen user experiences easy to build

Multi Screen Layout for Flutter A collection of Widgets that make multi screen user experiences easy to build Supported Devices Surface Duo Surface Du

Dec 1, 2022

Learn how to build a multi-step form flow and how to use bloc to effectively isolate the presentation layer from the business logic layer.

Learn how to build a multi-step form flow and how to use bloc to effectively isolate the presentation layer from the business logic layer.

Multi-page Form Flow Learn how to build a multi-step form flow and how to use bloc to effectively isolate the presentation layer from the business log

Dec 19, 2022

The domain specific language in dart for flutter widgets.

The domain specific language in dart for flutter widgets.

Rettulf !esrever ni stegdiw etirW Getting started import 'package:rettulf/rettulf.dart'; void main() = const MyApp().runAsApp(); class MyApp extend

Dec 21, 2022

Lightweight internet connection test, lookup a domain.

palestine_connection Lightweight internet connection test, lookup Google domain. Part of PalestineDevelopers project Features Periodic internet connec

Jun 26, 2022

A Dart-native lightweight Apache Pulsar client primarily focused on the IoT telemetry domain

pulsar_iot_client A lightweight Apache Pulsar client primarily focused on the IoT telemetry domain. This project aims to improve the resulting perform

May 10, 2022

COVID-19 application made with Flutter, following Test Driven Development (TDD) and Clean Architecture along with Internationalization with JSON.

COVID-19 application made with Flutter, following Test Driven Development (TDD) and Clean Architecture along with Internationalization with JSON.

Covid App COVID-19 application made with Flutter, following Test Driven Development (TDD) and Clean Architecture along with Internationalization with

Aug 4, 2022

An opinionated, community-driven set of lint rules for Dart and Flutter projects. Like pedantic but stricter

An opinionated, community-driven set of lint rules for Dart and Flutter projects. Like pedantic but stricter

Lint for Dart/Flutter lint is a hand-picked, open-source, community-driven collection of lint rules for Dart and Flutter projects. The set of rules fo

Jan 3, 2023

This project follows the Reso Coder course for flutter test-driven-development with clean architecture and BloC state management for a random trivia simple app.

This project follows the Reso Coder course for flutter test-driven-development with clean architecture and BloC state management for a random trivia simple app.

Jan 5, 2022
Comments
  • Translate Repository and its models created.

    Translate Repository and its models created.

    TranslationModel and TranslationEntity classes were created. Translate repository is developed with translator package. Provider and Hive dependencies added to the pubspec.yaml.

    opened by stelselim 0
Releases(1.0.0)
Owner
Selim √ústel
Interested in Flutter, React & React Native, Node.js, and Typescript. Loves working as a Full Stack Developer.
Selim √ústel
A mobile application that allows you to search and fetch recipes using Flutter, TheMealDB and Domain Driven Design

recipe_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

Johnny Nguyen 0 Dec 4, 2021
Flutter_ddd - Experimental Flutter project with Domain-Driven Design

flutter_ddd Notes app sample in Dart / Flutter with DDD. This is an outcome of my attempt to understand Domain-Driven Design and consider how I can in

Kabo 90 Dec 18, 2022
Flutter starter project - boilerPlate for Clean Architecture with Domain-Driven-Design with commonly used dependencies

flutter_starter_project A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you

MJ Montes 0 Jan 2, 2022
Domain-Driven Design + Firebase Flutter Course

Domain-Driven Design + Firebase Flutter Course The whole accompanying tutorial series is available at ?? this link ?? . Find more tutorials on resocod

Reso Coder 413 Dec 31, 2022
Flutter Architecture inspired by Domain Driven Design, Onion and Clean Architecture

Inspiring Domain Driven Design Flutter Architecture Please take a look at my slides to learn more Strategic Domain Driven Design For Improving Flutter

Majid Hajian 324 Dec 25, 2022
Flutter-clean-architecture - A simple flutter project developed with TDD and using Clean Architecture principles.

Clean Architecture This is a study project to practice TDD and a good approach of Clean Architecture for flutter projects. It is based on Reso Coder s

Luiz Paulo Franz 8 Jul 21, 2022
A Flutter project DDD skeleton

flutter_ddd_skeleton This is a Flutter project DDD skeleton, inspired by the amazing ResoCoder's tutorials: Flutter TDD Clean Architecture Flutter Fir

Vanessa Berazategui 8 Dec 9, 2022
Data Migrator - provide a universal translator for data by being portable, diverse, and efficient in migrating and converting data across discrete schemas

Data Migrator - provide a universal translator for data by being portable, diverse, and efficient in migrating and converting data across discrete schemas

Tanner Meade 77 Jan 2, 2023
Small calculator made to exemplify state management principles in Flutter using BLoC.

Oop Class Flutter Template Generated by the Very Good CLI ?? A Very Good Project created by Very Good CLI. Getting Started ?? This project contains 3

null 4 Dec 19, 2022
Extensions and principles for modern Dart development.

neodart Neo-Dart, or "new" Dart, is a series of recommended packages and principles that break out of classic conventions ("we've always done it that

Neo Dart 10 Dec 6, 2022