|This article is in construction.|
Part of being a tweak (and related) developer is communicating with your peers. Sometimes this involves asking questions because one has found a problem or is dealing with undocumented features of a program. With everyone dealing with their own problems, poorly made questions might discourage others from helping or lead to solutions one has already tried but didn't mention. So please read these suggestions before posting questions, comments and links on sites like reddit and StackOverflow, making issues in github projects or asking on IRC.
About your setup.
- Give as much information about it as possible.
- Provide which build environment you are using (Theos, Xcode; which version it is).
- Provide which platform you are building on (Mac, iOS (on-device), Linux, Windows, other; which version it is).
- Provide which platform you are targeting (iOS, watchOS, tvOS?; which device and version it is running).
- Extra questions to answer: Which terminal program are you using? How do you connect to your target device? Wi-Fi or SSH Over USB?
About your problem.
- Search your issue on Google, StackOverflow and the r/jailbreakdevelopers subreddit (maybe even in the r/jailbreak subreddit too)
Are you having trouble with your setup or when building your project? Give the troubleshooting wiki page a read in case your problem matches one of the templates there.
- State what you are trying to achieve. Is it visual? Add screenshots or drawings. Maybe add a link to a youtube video explaining what it should do. Be creative!
Perhaps you are trying to make a replacement for an existing but outdated project or porting something over from another system/platform? Try finding its source code first. Contact the original author, they might provide it to you if they don’t intend on maintaining it anymore. Otherwise try using what you can reverse engineer from the previous version to start from something more than scratch.
- What have you tried so far? Add snippets or links to pastes (ghostbin, hastebin, pastebin or github gists are good sites for sharing big pieces of code) if they are several lines or you want syntax highlighting. Or even link to your project site, hosted on GitHub, Bitbucket, sourceforge or other services/servers.
Please refrain from using screenshots to display text as it inflates the space needed for the code. Paste sites are more convenient since others can copy and paste snippets of it to show you where or what is wrong, or could be improved.
- If you don't have a simple way of sharing code (which happens to be the case of iOS users), I suggest using ghostbin's script that makes it very easy. Do:
curl -k -o ghost https://ghostbin.com/ghost.sh #or wget --no-check-certificate -O ghost https://ghostbin.com/ghost.sh #and then su -c "chmod +x ghost; chown --reference /usr/local/bin/ ghost; mv ghost /usr/local/bin/; ghost -h"
- What are the results of your work? Do they match what you had thought? Show screenshots or videos. Be as explicit as you can. If you use the syslog to show debugging messages use a paste service to share them for the same reasons as above.
About your solution.
- This subreddit is made up by people from different timezones so do not worry if your post goes unanswered for a couple hours or days. Most are here as a hobby, finding free time to do stuff of their own, so helping others might be a spare-time-between-spare-time task.
- I try to comment on all unanswered posts. If I do not know the answer I try to point to other related threads or sites that might put you in the right direction.
About helping others.
- Try to be polite and verbose about explanations. Unless provided or easily inferred, it is unknown how far OP knowledge goes. So ELI5 just in case ;P
- Do not accuse OP of wrongdoings before having proper evidence. Sometimes they can explain things in a way that leaves room for misinterpretation and jumping at them for what they haven't done might push them away.
- Use references to back up your explanations whenever possible. Even if the source is outdated it might help finding the right track to the answer.
- Use a title as descriptive as possible that helps understand why you find it useful for others. Consider adding a comment in case you need more space for explaining.
About off topic posts.
- Tell OP politely and suggest better and more relevant places to post. OP might have meant to post in
- r/jailbreak if it is a request,
- r/TweakBounty if it is a paid one,
- r/LegacyJailbreak if it involves older devices,
- r/ObjectiveC if it is a pure Objective-C issue,
- r/C Programming if it goes deeper down the rabbit hole,
- r/iOSProgramming if it is a normal iOS development question that doesn’t need a “jailbreaky” solution.
About the wiki.
- Both the iPhoneDevWiki and (the) theiPhoneWiki are useful resources for developers of jailbreaks, tools, libraries and tweaks. Use them to your advantage.
- Everyone is welcome to edit it, so long as it is constructive. If there's something you know that you want to share feel free to add it to a page, even if you don't know the syntax for it. Someone else can format it later or contact a contributor to help you do it.
- If there is something incorrect you can correct it, but if there is outdated information leave it as is with a note around it stating this fact; add the new information after it so the valid information is not lost to Apple's aggressive deprecation.
About open source code.
- Try to always add a license to your projects, no matter the size or complexity of it. See this section on choosing to open source your project.
- Try to use versioning systems to keep track of the changes you made and having points to go back to when code stops working. (For example github and sourceforge)