jamitlabs / jamitfoundation Goto Github PK
View Code? Open in Web Editor NEWJamitFoundation is a collection of useful concepts to enable composition oriented development with UIKit
License: MIT License
JamitFoundation is a collection of useful concepts to enable composition oriented development with UIKit
License: MIT License
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.
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.
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
.
When using the BarcodeScanner without having the camera permission granted the app crashes when dismissing the view the barcode scanner is in.
feature/sample-project-enhancements
on a real deviceTo 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.
ImageView
is not compatible with IBOutlet
.
Error in Xcode:
@IBOutlet property cannot have non-'@objc' class type 'ImageView'
Do we really need //
on every line?
As we might want to use a UICollectionViewController
it would be nice to have it also in a stateful way.
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.
Please add a usage guide for cocoapods to the README file.
Add SwiftUI style modifier behaviour to wrap composable views together.
Example:
SomeView()
.instantiate()
.onTapGesture { } // Wraps SomeView to ActionView<SomeView> and populates view model somehow
The Keychain
module seams to be missing documentation for all public interfaces!
If we use MessageViewPresenter together with multiple windows in an app the message is always presented on the last window. It doesn't matter if the window is visible or not. At a first step I would change it to use the key window of the app.
Just to formally document this.
Add module for a custom TabBar implementation that works on StatefulView
s as custom TabBarItem views.
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
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 }
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
As in some cases we also want to use a UITableViewController it would be nice to also have a stateful variant of it.
Our WeakCache implementation should be added as micro framework.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.