Git Product home page Git Product logo

jamitfoundation's People

Contributors

arestronaut avatar fredpi avatar icomputerfreak avatar jamitjona avatar jensk611 avatar jjorn avatar jl-jonas avatar mrylmz avatar raoulschwagmeier avatar simonnumbertwo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jamitfoundation's Issues

Container cell method interface problem with type inference

The ContainerTableViewCell and ContainerCollectionViewCell provides the methods -viewDidLoad and -didChangeModel as public interface. There is a swift runtime issue which causes a crash because the dynamic method dispatch with generics is failing when the containers are overridden.

Moving those methods into an extension resolved the method dispatch problem but introduces a new problem because it is not allowed to override methods which are declared in an extension.

If could be a solution to remove the methods from the cells but that would be a breaking change for the API.

Add ActionView custom highlighting possibility

Please add the possibility to configure the highlighting for the ActionView implementation. We often need for example an AppStore like scaling effect. Additionally it is not possible to use contentViews with rounded corners since the ActionView is not taking care of it.

Preferred Installation via HTTPS

As described in README, common installation should be done via ssh which is really no need for a public framework. I'd suggest to change the default method to https.

Crash when using BarcodeScanner Plugin

Description

When using the BarcodeScanner without having the camera permission granted the app crashes when dismissing the view the barcode scanner is in.

Steps to reproduce

  1. Open the sample app on the branch feature/sample-project-enhancements on a real device
  2. Decline the camera permission request
  3. Go back to the overview
  4. Open the barcode scanner again. You should be presented with an alert telling you to grant the camera permission
  5. Open the settings
  6. Go back without granting access to the camera
  7. Go back to the overview
    --> App crashes

Add readme files for modules

To provide useful descriptions and instructions for each module we should add a readme to each module like in WeakCache. The readme of the module should contain an example usage and should be linked to the readme file of the project in `Modules section.

Readme and usage examples

The README should be updated including more detailed information about the usage of JamitFoundation and it would also be very helpful to have an example project or a website describing common use-cases.

Add modifier for composed view wrapping

Add SwiftUI style modifier behaviour to wrap composable views together.

Example:

SomeView()
    .instantiate()
    .onTapGesture { } // Wraps SomeView to ActionView<SomeView> and populates view model somehow

Module-Proposal: Custom TabBar

Just to formally document this.
Add module for a custom TabBar implementation that works on StatefulViews as custom TabBarItem views.

Update view model properties

I was wondering if there is no cleaner way of updating immutable ViewModel properties than doing that inside a StatefulViewController:

var actualModel = self.model
actualModel.isLoading = true
self.model = actualModel

Solution 1

A suggestion would be to have an extension for StatefulViewController containing this:

import JamitFoundation

extension StatefulViewController {
    func updateModel(modifier: (inout Model) -> Void) {
        var actualModel = model
        modifier(&actualModel)
        self.model = actualModel
    }
}

Extension in action:

viewController.updateModel { $0.isLoading = true }

Solution 2

Another approach could be to allow var properties in the ViewModel. Setting a var property would automatically trigger the update mechanism of the StatefulViewController .
Code example:

self.model.isLoading = true // isLoading is a var

Add WeakCache implementation

Our WeakCache implementation should be added as micro framework.

  • Tests should be added
  • Example usage should be available

Adjust UserDefaults module to work without SwiftUI dependency

The UserDefaults module is using SwiftUI API (Binding) which is only limited by iOS Version but not by availability of SwiftUI dependency. Therefore projects using UserDefaults submodule without linking SwiftUI will not work.

The Api should be encapsulated and should only be available if SwiftUI is available.

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.