Hi, i just started a open source project with the aim to fill the gap for some missing controls on Xamarin Forms, as well as providing to the community helpers/services to help cross platform development.
My idea was to create nuget packages for this toolkit, that one could simply add to the app, and use more controls, and have more features.
I wanted to ask for your help in bringing this project to life, you can help out in very different ways, from just suggesting controls that could be implemented, as coding some new controls, design new ui's for the controls, implement platform specific controls or help testing the toolkit.
All feedback is welcome.
please take a look at the existing code for now only with calendar control, and speechtotext service
Posts
We have created a new home and changed the name to XForms Toolkit so it doesn't have namespace issues with Xamarin, check it out and contribute with your awesome controls
https://github.com/XForms/XForms-Toolkit
What about a segmented control which switches views as you change the selection.
Sounds Great Scott, can you give us a hand?
If I end up building something like that for my current app I'll send it through and you can decide if its good enough quality to include or not. At this stage I'm feeling the steep learning curve so I'm just focusing on getting the basics working
That's awesome Scott, at this time we are accepting every contribution, the quality is not a very important aspect as we expect the community helps bring better implementations of each controls as we go forward with the project.
We are all learning , and why don't we learn together
@rmarinho I'd like to contribute a BaseView and BaseViewModel to your project. I don't want to take over your project by mistake just by associating the Xamarin name however, how would you like me to contribute (I fear forking into a Xamarin owned repo might be difficult for you)?
@JasonASmith that would be very cool. can i just add you to XForms organization, and you contribute?
Works for me, I am 100% behind there being some community driven work! I am jassmith on github
Any plans to add support for WinPhone as well?
Support for what? Xamarin.Forms already works on WinPhone?
Invite sent
yeah, i m coming from windows phone / win rt and i have done lot's of apps that always rely in some kind of toolkit to help bridge the gap of missing controls.
It's my first time organizing this kind of stuff though, so any feedback is always welcome and appreciated.
Btw, if you can look at that issue i pointed out with dependency service that would be great.
@rmarinho I like the sounds of this a lot. I am going to take a closer look at it when I get home and I might give you a hand on some controls that you have planned.
@ShawnAnderson yes definitely , i m just missing out commit the windows phone project. I was on my mac last night, and there's no windows phone support there yet
(one thing i would love xamarin helps out too)
Another thing i have think is Adding a layer of abstraction so we can call Xamarin.Mobile from the forms projects.
Should we invest in that @JasonASmith ? or you guys are planning a new release of Xamarin.Mobile ?! (this is specially interesting for Location )
@ScottBradley I have a segmented control and iOS renderer I can contribute, if you want. no android or wp renderer though.
@rmarinho just like jason said, we don't want to take over your repository. but I'm fine to contribute provided we're ok with the licence.
@rmarinho I just confirmed the DependencyService works fine on Android. Please keep in mind I wont be looking for Xamarin.Forms core bugs in your contribs bug tracker. You should either file them here or on the Xamarin bugzilla (god bless your soul if you do).
I doubt they will let me just set up a github project for people to file issues on that... that would just be too easy :P
@StephaneDelcroix great thanks!
If you submit it then at least there is a starting point. I wouldn't have known even where to start!!
rmarinho, can you please define a license for the project and may I suggest MIT/X11?
@rmarinho we could also contribute a Behaviors and Triggers implementation
Yeah sure, i was just giving you a easy repo of the problem i m facing i m trying to find if't it's a bug or not.
For example in IOS, to Dependency to work, i had to call my render on the beginning so it can bring the DLL to the project?
https://github.com/XForms/XForms-Toolkit/blob/master/samples/XForms.Toolkit.Sample.iOS/AppDelegate.cs#L30
have you tryed to have the implementation on other android class library?!
@rmarinho you need to attribute your class with [Preserve] so the linker does clobber it
@JasonASmith i have added a license already : https://github.com/XForms/XForms-Toolkit/blob/master/LICENSE
That's good ?
@StephaneDelcroix wow.. so coll he have triggers and behaviors support? I didn't even tried that yet, we don't have storyboards like MS xaml right?!
@rmarinho thank you that frees us up to contribute without any worry
@rmarinho: I can contribute by adding my ExtendedTabbedPage available here: blog.thomaslebrun.net/2014/06/xamarin-how-to-know-when-the-current-page-of-a-tabbedpage-has-changed/
@ThomasLEBRUN very cool! i was working in a similar same thing...
That's why having this kind of project is cool so we can save some time, and create better controls by merging ideas/code ...
@rmarinho : OK, I'll try to make the modifications and performs a PR to Github
Ok @ThomasLEBRUN and the first PR was submitted just now, we already have nuget packages so everyone could start trying the toolkit more easily ..
I have some abstraction layers I could port over to the library. They aren't related to Xamarin.Forms but abstraction in general. Serialization, DI, device sensors, display, Bluetooth etc.
Just a suggestion...enable StyleCop or similar to enforce coding standards (including XML documentation rules). Helps a lot in keeping the code clean.
Skall that would be really great! i already looked at some of your project in SimplyMobile and i was gonna write you and email to join in if you had time.
I think some of the services will be pretty useful to be injected in our viewmodels, so it would be a great fit to the toolkit.
Thanks for the tip Skall i don't have a lot of experience with it... to be honest only thing i do is ctrl+shift+D :P
@rmarinho,
I sent you a pull request for the ImageButton. Right now the only renderer included is Android. I'll convert over my prototypes for iOS and WP soon.
BTW, here is what they look like:
very nice Kevin! i m in my day job now, later today i will check the PR.
Ok every PR are merged in the master, for now we have the following controls in the Xamarin forms toolkit:
https://github.com/XForms/XForms-Toolkit
I m currently working myself in adding a cache service based on this: http://components.xamarin.com/view/simple-storage/
@JasonASmith we have a viewmodel in there but you talked in some hooks in the navigation events of the page , that would be great
(btw can you fix the typo in this topic header)
Thanks
@rmarinho, I also have a generic ICacheProvider interface with implementation to use SQLite.Net.Async for persistent caching. Thanks to ServiceStack library the same interface also works with Redis (more server side stuff but can also be used from mobile).
I will try to push in serialization interfaces as well with plugins for Json.NET, ServiceStack and ProtoBuffer. Most likely I will have time this weekend.
@SKall cool, i was looking at some solutions for caching, i also thought on SQLLite, i think this could be a very helpfull service to support offline apps..
But there's one thing we must have careful is the size of the toolkit.
It should be divided into separate assemblies. Things like caching that are not related to Xamarin.Forms should not IMO be in the same assembly. Same with interfaces and implementations. Caching interface in PCL library and then implementations as plugins so one can easily just pick one to use and not worry about the rest.
What should be avoided is hard dependencies. 3rd party library like SimpleStorage as cache provider should be a plugin assembly.
You are totally right, that way one could chose different implementations for the cache provider. By just installing the right nuget.
@rmarinho I've got a
WrapLayout
container if you'd like it. My github id is markjulmar.