12/19/2023 0 Comments Gitx hooksIt’s basically github, a few months behind. We looked at a number of hosted git options and ended up using github:fi. While everyone began to wrap their head around git, I worked on creating a centralized git repository. Using git-svn allows developers to get familiar with git independently, without affecting everyone else’s workflow. It allows developers to make commits to a local git repository and rearrange them as if the entire system were using git, but the local git checkout actually pushes the commits to a Subversion repository. To begin, the team was encouraged to learn the basics of git (if they hadn’t already) and to start using git-svn, a git interface to Subversion. The former involves changing how code is pushed to the repository, and the latter involves changing how that code is sent to production. Switching to git is best split into two components, development and production. Now that we’re on git, we have the same workflow as we had before, but we have the option to add complexity as the team and project scope grow. Using git allows you to use any number of arbitrarily complicated workflows, but changing too much at once can be really frustrating to developers. When it came to making the switch, my primary goal was to disrupt this workflow as little as possible. I imagine that as we have more people and projects, we’ll use a packaging system and automate deployment, but that level of complexity isn’t necessary at this point. What ends up in production is ultimately determined by the developers, which is fine with a small, trusted team. Hunch has a small development team (~15 active committers) with only a few (~20) production servers, so our deployment just involves syncing out the trunk of the repository. A number of development teams seem to be doing the switch these days, so I figured I’d share my experience and lessons learned to ease the transition for others. I’m not an expert on git by any means, but, since I had more knowledge than most and an interest in making the switch, I ended up with the responsibility of getting us across the divide with as few showstoppers as possible. (Feature flags / alternate codepaths triggered server side).Over the last few weeks at Hunch, we’ve switched our version control system from Subversion to git. Add generic hooks into the app to allow you to update the app w/o deploying an app store update.For example, a JSON dictionary to configure the device at runtime. Push as much app logic can server side to workaround bugs.WebTranslateIt: shared localized strings between iOS / Android.Pseudo-localization: writing your own language to verify your views are handing variable string lengths and strings you’ve forgot to localize.International testing: override the default language via a defaults config value.Feature switches for UI – toggle between UI modes to determine which UI is better.Feature switches (debug only) to customize / streamline the debug experience.Subclass UIApplication, override sendEvent to extract GSEventRef, posts NSNotification. They use this for debugging in the simulator. Flipboard hooked up a global event listener to globally listen for keyboard events to trigger actions. JIRA: the least bad of the bug trackers out there.Similar to Google’s “shake to report bug”. Double pressing the up/down volume button press to trigger the debug UI. Gesture based tools / issue reporting.Squash bugs: add hooks to improve debugging In-app debugging tools to expose app internals for debugging turned on in debug builds via flags.App Code: Unused code detection, additional warnings that clang will not catch.Allows multiple installed builds per device.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |