Code Monkey home page Code Monkey logo

polaris's People

Contributors

przemek-jablonski avatar

Watchers

 avatar

Forkers

stavares843

polaris's Issues

[initializing] Support for base protocols

MVVM architecture has a few base protocols, such as ViewModel or Interactor. Obviously, if the target project doesn't have them created, then the compilation will fail.

In order to support quick project creation with Polaris (and not only generating new screens in existing one) there needs to be an option (preferably as a checkbox in Screen.xctemplate) to generate base protocols as well.

Extract to subtemplates

Screen.xctemplate needs to be split into modular subtemplates (___FILEBASENAME___Assembly.swift, ___FILEBASENAME___Interactor.swift etc) which will be in turn integrated as Ancestors. This has to be done in order to minimise maintenance cost over time.

Creating folder (group) with new screen name

Although using Polaris requires user input to describe app name and new screen name, those informations are not used to create an actual folder (or group in Xcode nomenclature) where the code will be put. This forces user to create one manually (to maintain clean folder structure in project), but it should be done automatically

Introduce RenderingModels and prefixes with new file generation

Introduce RenderingModels (ViewModels), which will enable to:

  • generate stubs, mocks and func/vars for the architecture components where *RenderingModel is actually used
  • Swiftui mocks will become easier
  • fetching Context will be removed from Swiftui PreviewProvider
  • new file with prefixed architecture components

[initializing] Support for Assembler and CommonAssembly

In order to generate dependency injection graph, Swinject-based projects need to have:

  • Assembler instance
  • Assembler enum static wrapper
  • Assembler registration in AppDelegate, WatchKitDelegate
  • assembly for common definitions (CommonAssembly)

In order to support quick project creation with Polaris (and not only generating new screens in existing one) there needs to be an option (preferably as a checkbox in Screen.xctemplate) to generate aforementioned DI architecture as well.

Randomized background color fix in *View template

Right now randomized background color for newly generated View is being calculated every time view is initialized. This looks whack when there's multiple previews going on for single PreviewProvider.

SwiftUI PreviewProvider based on deployment platform

Right now there is a custom PreviewProvider generated for every SwiftUI view, which displays previews from multiple devices (using Group and .preview(on:)modifiers).

This is very good except devices used in preview(on:) need to be unique and derived from the deployment platform (view generated for ios should use ios-based preview devices etc.). Currently every view is previewed on applewatch_old, applewatch_large and applewatch_small, which is incorrect if creating template for, let's say, appletvos.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.