How To Version My Custom Classes - ios

I have written some custom classes for coredata for use in projects. These will be updated over time.
Besides using git, what is the best way to manage versioning for my custom classes in my iOS projects?

There's really nice new feature In Xcode4.x for version control, you can take help of that in order to achieve that.
For details on it: Check this link:
http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/Xcode_User_Guide/000-About_Xcode/about.html

Related

What is the difference between a unity plugin and a dll file?

i am new to Unity and i am try to understand plugins. I have got the difference between a managed plugin and a native plugin, but what is not very clear to me is:
what is the difference between a plugin and a dll? what should i expect to find in an sdk to make it usable in my unity project?
Thanks a lot
To expand on #Everts comment instead of just copying it into an answer, I'll go a little into details here
What is a plugin?
It's a somewhat vague word for a third-party library that is somehow integrated with the rest of your game. It means that it neither is officialy supported by Unity, nor is it a part of your core code. It can be "plugged" in or out without altering its internals, so it must provide some kind of API that can be used by the game code.
For example, you'll find many plugins that handle external services like ads, notifications, analytics etc. You'll also find a couple of developer-tools that can also be called plugins, like tile-based map editors and such.
Plugins come in many forms - DLL files are one example but some plugins actually provide full source code for easier use. And of course, other plugins will provide native code for different platforms, like Objective-C for iOS or .jars for Android.
So to answer your first question:
DLL is simply a pre-compiled source file that can be a part of a plugin
A plugin is a whole library that can consist of multiple files with different formats (.cs, .dll, .jar, .m etc)
What do you need to use an sdk?
First of all - documentation. Like I said before, and like you noticed yourself, not all plugins give you access to the source code. And unfortunately, not many sdks have extensive and developer-friendly documentations so it can be a tough task to actually understand how to use a given sdk.
Secondly - the code. Many sdks give you some kind of "drag & drop" library, a single folder with all the neccessary files inside that you simply add to your Unity projects. I've also seen sdks that use Unity packages that you have to import via Assets > Import Package > Custom Package.
Once you have the code and documentation it's time to integrate it with your game. I strongly recommend using an abstract lyer in your game as, in my experience, you often have to change sdks for various reasons and you don't want to rewrite your game logic every time. So I suggest encapsulating sdk-related code in a single class so that you have to change only one class in your code when switching from, say, one ad provider to another (and keep the old class in case you need to switch back).
So you basically need three things:
Documentation (either a readme file or an online documentation)
The code (precompiled or source)
A versatile integration

How to migrate existing Xamarin.iOS project into Xamarin.Forms code?

I want to move my development completely into Xamarin.Forms. Currently, everything was developed using Xamarin.iOS and now i want to move to Forms due to some requirements. How to use my existing Xamarin.iOS code on Xamarin.Forms?
There is no easy way for this. You need to redo your application in Forms/Xaml, which takes time. You can use some iOS specific code in Xamarin.Forms renderers specifically for iOS specific styling.
There is no easy way for this unfortunately.
No Automation available. You need to do it manually. and its not going to be simple. You will have to rewrite almost all code involved with UI. you can reuse code written for business logic but for all other, you need to rewrite with Forms/Xamml.

How to manage 3rd-party library in iOS project if its source code needs to be modified in order to be used?

We need to use some 3rd-party libraries in our iOS app project (which is an Xcode project). The 3rd-party libraries are either managed by Cocoapods or directly added in the project by importing source code files.
Sometimes we need to modify a library's source code in order to actually use it appropriately in our project. It's easy to make the modification since we have all the source code at our hand, but how can we maintain the modification when some time in the future we upgrade the version of the 3rd-party library? Is there any tools or best practice out there that can help with this? And after the upgrade of the 3rd-party library, it will be good if we could differentiate in the code history about which part is done by library upgrade and which part is done by our modification.
That depends entirely on what your change is...
The best option is to not change the external code. Instead, subclass the part you need to change and use only public API so you should find out early when updating if the subclass needs to change. Unit tests also help.
If you can't subclass then you should fork the external code, then you have to manually merge updates on top of your change when you want them. This is obviously significantly more effort both in terms of importing and managing the code.

Rails: tools for auto-building existing project features/structure

I need to create new version of my current project - take all features and rewrite it, add new features.
What tools or gems do we have for Rails project to build for me some kind of catalogue of existing features? Maybe in form of models and associations between it or some kind of graphs.
After it I will be able to customize such information for my needs. Anyway it should be simpler than go through all code and make it from scratch by myself.
All help appreciated.
I found such gem for my case:
https://github.com/voormedia/rails-erd
It's not totally what I was seeking for, but still useful.

Code reuse tools

I usually maintain code snippets that I can resuse in a Wikidpad personal wiki with a small index page that can take me to any code that I want.
I want to share these snippets with my team and am looking for easy ways to do it.
Are there any tools that would help me setup such a repository? Or should I simply install a wiki and port my personal wiki there?
Thanks
Hari
Google Docs, perhaps? Search-ability is the key. No one has time to cross-index, keyword-stuff, and organize "snippets" into complex ontologies.
Also, remember that when someone reuses code, they also reuse the bugs, limitations, and performance issues you may have worked out in subsequent revisions. The best way to reuse code is not to copy it, but to document it and make it accessible for direct reuse.
Some IDEs have a code-snippet utility built into them. e.g. Visual Studio has Code Snippet Manager.
Or perhaps an addin like Resharper. My point being find something that integrates nicely with the IDE that your team uses.
Why not use code snipplr
An easy and reusable solution: a repository with web interface like subversion. Also Github can be a good option since you don't need installation

Resources