Some of the most commonly used tools and technologies for building mobile apps in a capstone project include:
Programming Languages: The programming language used will depend on whether the app is being developed for iOS or Android. For iOS, Swift and Objective-C are the main languages used, while Android apps are typically developed using Java and Kotlin. Other cross-platform languages like Flutter, React Native and Xamarin can be used to develop apps that run on both platforms.
Development Environments: For iOS development, Xcode is Apple’s official IDE (Integrated Development Environment) used for building iOS, watchOS, tvOS, and macOS software and includes tools for coding, designing user interfaces, and managing projects. For Android development, Android Studio is the official IDE which is based on the JetBrains IntelliJ IDEA software and includes emulator capabilities and tools for code editing, debugging, and testing. Visual Studio Code is another popular cross-platform code editor used along with plugins.
User Interface Design Tools: Sketch and Figma are popular UI/UX design tools used for wireframing and prototyping mobile app interfaces before development. Adobe Photoshop and Illustrator are also commonly used for graphics design aspects. During development, UI elements are coded using XML layout files and UI kit frameworks.
Databases: Most apps require databases for storing persistent data. Popular cross-platform options include SQLite (for local storage), and remote cloud databases like Firebase (NoSQL) and AWS. Realm is another powerful cross-platform mobile database that supports both offline and synchronized data.
Networking/APIs: APIs enable apps to pull in remote data from the web and connect to backend services. Common RESTful API frameworks used include Retrofit/Retrofit2 (Android), and Alamofire (iOS/Swift). For calling external APIs, JSON parsing libraries like Gson, Moshi and SwiftyJSON are helpful.
Testing Tools: Testing frameworks like JUnit (Java), XCTest (iOS), and Espresso (Android) help automatically test app functions. Additional tools for GUI testing include Appium, Calabash, and UI Automator. Beta testing platforms allow distributing pre-release builds for crowd-sourced feedback.
App Distribution: Releasing the finished app involves building release configurations for distribution through official app stores. For Android, the built APK file needs to be uploaded to the Google Play Store. iOS apps are archived and submitted to Apple’s TestFlight Beta Testing system before final release on the App Store. Alternatives include direct distribution through other app markets or as an enterprise app.
Version Control: Git is universally used for managing the source code history and changes through versions. Popular hosting platforms are GitHub, GitLab and Bitbucket for open source collaboration during development. Integrating continuous integration (CI) through services like Jenkins, Travis CI or GitHub Actions automates things like running tests on code commits.
3rd Party Libraries/SDKs: Common third-party open source libraries integrated through dependency managers massively boost productivity. Popular examples for Android include, but are not limited to, SQLite, Glide, Retrofit, Google Play Services, Firebase etc. Equivalents for iOS include CoreData, Alamofire, Kingfisher, Fabric etc. Various other SDKs may integrate additional functionalities from third parties.
App Analytics: Tracking usage metrics and diagnosing crashes is important for improvement and monitoring real-world performance. Popular analytics services include Google Analytics, Firebase Analytics, and Fabric Crashlytics for both platforms. These help analyze app health, usage patterns, identify issues and measure the impact of changes.
DevOps Automation: Tools for automating deployments, configurations and infrastructure provisioning. Popular examples are Docker (containerization), Ansible, AWS Amplify, GitHub Actions, Kubernetes, Terraform etc. Help smoothly manage release workflows in production environments.
Some additional factors to consider include app monetization strategies if needed, security best practices, compliance and localization aspects. While the specific tools may differ between platforms or use cases, the above covers many of the core technologies and frameworks commonly leveraged in modern mobile application development projects including capstone or thesis projects. Adopting best practices around design, development workflows, testing and data ensures student projects meet industry standards and help demonstrate skills to potential employers.