- Developers
- Developer Blog
- Mobile App Development
- How to Build Marijuana Apps?
profile
By Aran Davies
Verified Expert
8 years of experience
Aran Davies is a full-stack software development engineer and tech writer with experience in Web and Mobile technologies. He is a tech nomad and has seen it all.
Interested in learning how to build marijuana apps?
The legal cannabis industry is growing rapidly, and so are the apps that cash in on this boom.
According to Grand View Research, the global legal marijuana market size is expected to reach USD 73.6 billion by 2027. It is anticipated to expand at a CAGR of 18.1% during the forecast period.
Along with all the money to be made, innovating in this industry is your chance to help safely use this newly legalized medication.
The market for marijuana
The state of California was the first to legalize marijuana for medical purposes back in 1996. The market for marijuana in that state expanded dramatically in subsequent years, bringing in much-needed tax revenue. Here are a few interesting facts:
- As of November 2018, 33 states in the US allowed the medical use of marijuana. This was mainly to aid with the treatment of medical marijuana patients having symptoms associated with AIDS, cancer, and glaucoma.
Read “Medical marijuana in the U.S. – statistics & facts” for more details.
- Worldwide, spending on legal marijuana or medical cannabis products will likely reach $63.5 billion in 2024. Read this Statista report for more insights.
- Medical marijuana retail sales in the US could reach $12 billion by 2024, as this Statista report indicates.
Examples of marijuana apps
Let‘s review a few marijuana apps before we get started with marijuana app development. This will help you to understand the features that you should include in your app. Check out the following apps:
Leafly
Leafly offers the following features and benefits:
- Users can view a wide range of marijuana strains.
- The app sorts the strains by mood or medical needs. There are also listings by popularity.
- App users can access reviews of flavor, strength, and effects and get personalized cannabis strain recommendations.
- There is information about local doctors prescribing marijuana, dispensaries, and delivery services.
- Users can view great deals.
- There are Android and iOS apps in addition to the web app.
Eaze
A popular marijuana app, Eaze provides the following features and advantages:
Get a complimentary discovery call and a free ballpark estimate for your project
Trusted by 100x of startups and companies like
- The app displays a wide range of marijuana products for different styles of cannabis consumers.
- A web app, an iOS app, and an Android app are available for users.
- There is a wide choice of devices and accessories to buy.
- Users can buy marijuana from devices online, and the company provides delivery services through cannabis delivery apps.
Weedmaps
Weedmaps is a well-known marijuana weed app that offers a number of features:
- Users can find different strains and flavors of marijuana, devices, and accessories.
- There is a web app, moreover, there are also Android and iOS apps.
- The app lets users find delivery services, deals, and doctors.
- At the time of writing, their order delivery service is in beta.
Features required in marijuana apps
Consider incorporating the following features in the app:
- The app needs a comprehensive database of marijuana strains and flavors.
- Users can search for devices, accessories, deals, and doctors.
- App users should be able to consult a doctor.
- There should be a web app, an Android app, and an iOS app.
- Identity verification, e-commerce, order delivery, and payment gateway integration are some of the key features.
- The app needs push notifications and security features.
- The “User interface” (UI) should be easy to use.
If you want to learn more about the features of weed apps, you can read “Best marijuana apps for iPhone and Android.”
Developing marijuana apps
A software development project to build cannabis apps involves the following steps:
Prepare to meet the regulatory requirements
Meeting the regulatory requirements is key to the success of any marijuana app. Regulatory requirements vary by state within the US, so be careful!
It is strongly advised that you engage legal expertise to ensure you remain on the right side of the cannabis law. This goes for other countries, too.
Refer to the homepage of “The National Cannabis Industry Association” for useful resources.
Project scope definition
I recommend you define the project scope as follows:
- Developing a web app;
- Build an Android app;
- Develop an iOS app.
Remember to incorporate the features I have described above.
Opt for the Agile methodology
A software development project like this will require iterative development. You will launch a “Minimum Viable Product” (MVP) and subsequently enhance that after analyzing market feedback. Agile is the best methodology for such projects.
You can read my article “Waterfall vs Agile: Which methodology is right for your project” to learn why.
Formulate a development approach
I recommend the following approach for this project:
- Use “Software development kits” (SDKs)/”Application Programming Interfaces” (APIs) to incorporate the following features:
- Consulting a doctor and getting e-prescriptions;
- Identity verification;
- E-commerce;
- Payment gateway integration;
- Order delivery;
- Map integration;
- SMS/Push notifications.
- Use managed cloud services like “Platform as a Service” (PaaS), and “Mobile Backend as a Service” (MBaaS).
Build a team
Your team needs the following roles:
- Business analysts (BAs);
- UI/UX designers;
- Web developers with Node.js skills;
- Android developers with Kotlin skills;
- iOS developers with Swift skills;
- Testers;
- A project manager (PM).
I recommend using “Scrum,” a proven technique to manage Agile projects. In this, the project manager or PM acts as the “Scrum master” and builds small, cross-functional teams called “Scrum teams”.
You can learn more about Scrum in “How to build a Scrum development team?”.
Get an e-Prescription API
I recommend you use an e-Prescription software provider for the prescription feature that allows users to consult a doctor and get an electronic prescription. DoseSpot provides an API for this. Note the following:
- Their e-Prescribing platform offers relevant features, e.g.:
- Create new e-Prescriptions;
- E-Prescription of controlled substances;
- Maintenance of medication history, list of active medications, etc.;
- Medication reconciliation.
- The company has “Integration Jumpstart” and “Integration Plus+” APIs. I recommend “Integration Plus+”, since you can create customizable e-Prescribing features using it. Access it here.
- Contact DoseSpot for their pricing details.
Sign-up for an identity verification API
In an industry with complex regulatory requirements, you need a robust identity verification solution. ID.me offers that. The following facts are relevant here:
Hire expert developers for your next project
1,200 top developers
us since 2016
- ID.me offers key features like digital identity verification, documentation verification, and group affiliation verification.
- It supports “Electronic Prescription of Controlled Substances” (EPCS) physician identity verification, which is important for your app.
- Access their API on the ID.me developer portal.
- They offer APIs and SDKs, and you can access their comprehensive documentation here.
- You need to sign-up to access their APIs.
Get an ecommerce API
Your marijuana app needs an ecommerce solution to manage the online shopping aspect. You can use the ecommerce API from BigCommerce. The following quick facts are notable here:
- The BigCommerce ecommerce API is easy to use.
- It offers seamless integration with relevant services.
- Catalog, cart, user login, etc., are easy to implement with it.
- There is extensive documentation for your team, and you can access it here.
- You can check out their pricing plans here.
Choose a payment gateway API
You will need to integrate a payment gateway in your app, and Stripe is an excellent solution for this. Note the following key points:
- You can learn about the Stripe payment gateway integration here.
- Easily integrate card payment into your app with this guide.
- Read about their APIs here.
- Check out their iOS SDK here.
- You can access their Android SDK here.
- Find their pricing plans here.
Sign-up for a delivery logistics solution
Incorporating the order delivery feature needs a delivery logistics solution. Bringg is such a delivery logistics platform. The following quick facts are worth noting here:
- Bringg offers several advantages like lower delivery costs, superior customer experience, transparency, optimal route assignment, etc.
- Find out about their solutions here.
- Your programmers can check out their detailed documentation here.
- Bringg offers an Android SDK for customers and one for drivers.
- Similarly, there is an iOS SDK for customers and another for drivers.
- There is also a Bringg JavaScript SDK for web app development.
Get Google Maps SDKs/APIs
To build a marijuana app you will need to integrate maps, and the Google Maps platform is an excellent choice for this. Note the following:
- Your development team can access the comprehensive “Google Maps Platform documentation” to get the required guidance.
- Google Maps has an Android SDK, and you can access it here.
- Check out their iOS SDK here.
- For web app development, you can find their JavaScript SDK/API here.
- You can get the Google Maps platform pricing information here.
Obtain the right SMS solution
A marijuana app needs a bulk SMS solution to engage consumers. Twilio is a robust choice. You need to note the following relevant points:
- Use their “Programmable SMS” APIs.
- Your programmers can get the necessary guidance here.
- Read “Messaging Services and Copilot” for more details.
- You can find the pricing plans of Twilio here.
Sign-up with a PaaS provider
You need a great way to expedite web app development. Using a PaaS provider will let you focus on development. This is because of the following reasons:
- PaaS providers handle the cloud infrastructure, networking, storage, operating system, middleware, and runtime environment. You only need to bring your code and data.
- A PaaS provider also enables you to integrate database, application monitoring, auto-scaling, security, DevOps, and 3rd party APIs.
I have explained the benefits of using a PaaS in “10 top PaaS providers”.
I recommend you use AWS Elastic Beanstalk, which is the PaaS offering by AWS. Elastic Beanstalk supports a wide range of runtime environments, and AWS cloud capabilities are robust.
Get an MBaaS account
Use an MBaaS provider so that you can focus on the mobile front-end design and development. Mobile backend development and its management can be tricky. However, MBaaS providers simplify it as follows:
- An MBaaS provider manages cloud infrastructure, persistent storage, networking, etc.
- There is a wide range of mobile platforms and devices; however, using an MBaaS simplifies this complexity for developers.
- MBaaS providers help in incorporating security features, user management, push notifications, etc.
- You can easily scale your mobile app if you use an MBaaS provider.
Read “How to choose the best Mobile Backend as a Service (MBaaS)?” to learn more about the advantages of MBaaS.
At this point, the easiest choice for you is AWS Amplify, i.e., the MBaaS offering from AWS. Since you have already signed up for AWS Elastic Beanstalk, you can use the same AWS account for AWS Amplify!
Use Node.js to develop the web app
Node.js, a popular runtime environment for web app development, is a great choice to build a marijuana app. This is due to the following reasons:
- It’s open-source and has a vibrant developer community.
- The developer community has created thousands of shared open-source tools and frameworks, and these improve the productivity of your development team. As a matter of fact, I will recommend you use Express.js, a highly performant framework based on Node.js, for this project.
- Node.js is easy for developers with JavaScript skills.
- Building a scalable web app is easy with Node.js since it supports asynchronous event-driven programming.
I have explained the advantages of Node.js in “10 great tools for Node.Js software development”. Note that AWS Elastic Beanstalk supports both Node.js and Express.js.
Choose the Kotlin language for Android development
The modern programming language Kotlin is becoming increasingly popular for Android development. There are many advantages to using Kotlin, e.g.:
- Google fully supports this open-source language. Android Studio, i.e., Google‘s popular “Integrated Development Environment” (IDE) facilitates developing Android apps with Kotlin. Additionally, JetBrains, the company behind Kotlin also fully supports it.
- Programmers find the concise syntax of Kotlin very useful since they can code less yet accomplish the same tasks.
- Kotlin has advanced features to avoid common coding errors like null pointer exceptions; therefore, writing bug-free code is easier with Kotlin.
- The language uses Java libraries, and it‘s fully interoperable with Java.
- The lightweight libraries of Kotlin make the app fast and performant.
- It‘s easier to maintain an app coded in Kotlin.
Read “Kotlin vs Java: which is the best choice?” to learn why Kotlin is so popular.
Use Swift for iOS development
Apple champions Swift for developing apps on several of its platforms, such as iOS, macOS, etc. I recommend you use this programming language for this project. Swift has many advantages, as follows:
- It‘s an English-like language, making the code easier to read and maintain.
- It has features like generics and operators like string concatenation, making coding easier.
- Error-free coding is easier with Swift.
- Apps written in Swift are fast and performant.
- It is not just Apple that supports Swift; IBM also supports Swift.
- “App Store Optimization” (ASO) is better with Swift since Apple prefers apps using modern technologies.
You can read “How to migrate your Objective-C project to Swift?” to learn more about the advantages of using Swift.
Code, test, and deploy the web app
Now that you have all the tools and platforms that you need, it‘s time to code! Web app development involves the following:
Hire expert developers for your next project
- Code your Node.js app on Elastic Beanstalk.
- Use database resources according to your requirements. Read “Adding a database to your Elastic Beanstalk environment” to learn more.
- Integrate e-Prescription, identity verification, eCommerce, payment gateway, delivery logistics, map, and bulk SMS SDKs/APIs mentioned earlier.
- Test and deploy the web app. You can read “Deploying Node.js applications to AWS Elastic Beanstalk” for guidance.
UI design for the mobile app
It‘s time to focus on mobile app development; therefore, let‘s start with the UI design. Your UI design team needs to pay attention to the following aspects:
- The UI needs the right mobile navigation menu pattern. Read “Mobile navigation menu examples” to learn more.
- You should choose the right color scheme for the UI. Our guide, “8 trends in mobile app color scheme” can help with this.
- Design icons for the app following the appropriate guidance. Consult “How to design the perfect icon for your mobile app?” for more details.
Finally, it’s important to have your user interface checked before you launch your app.
Develop, test, and publish the Android app
Developing the Android app now involves the following steps:
- Use Android Studio. If developers need guidance on using Kotlin on Android Studio, they can read, “Get started with Kotlin on Android.”
- Integrate the SDKs/APIs for DoseSpot, ID.me, BigCommerce, Stripe, Bringg, Google Maps, and Twilio programmable SMS.
- Test the app.
- Publish the app to Google Play using this guide.
Coding, testing, and publishing the iOS app
Go ahead with the iOS app development as follows:
- Use Xcode, the popular Apple IDE. Xcode fully supports Swift.
- You need to integrate e-Prescription, identity verification, eCommerce, payment gateway, delivery logistics, mapping, and bulk SMS APIs/SDKs in your code.
- After you test the app thoroughly, use this guide to publish it to the Apple app store.
Use the right project management tools
A scrum team works as follows:
- A “Product owner” provides the requirements in a document called “Product Backlog.”
- We call a scrum iteration a “Sprint.”
- The team estimates it and prioritizes requirements in a meeting called “Sprint review meeting”. They schedule requirements in sprints and plan them.
- A scrum team holds “daily stand-up meetings” to discuss the project status.
- Project stakeholders approve a sprint in a meeting called “Sprint review meeting”, where the team demonstrates that the features are indeed working.
You need a robust PM tool to manage your software development. I personally recommend Jira. My other suggestion is that you use a real-time dashboard for effective project management.
You can read “How a real-time dashboard can revolutionize your eSports development process?” to learn more about this.
Have a great idea for developing marijuana apps?
You might have great ideas for marijuana apps. However, developing such an app is a complex project.
Tools, platforms, and skilled developers are a must. However, end-to-end project management is the most crucial success factor. I suggest you get professional help.
Our guide “How to find the best software development company?” can help you to find the right development partner.
If you still looking for professional mobile app developers, DevTeam.Space can help you via its field-expert software developers community.
Write to us your initial project specifications, and one of our account managers will get in touch with you for more details.
Best of luck with your project.
Frequently Asked Questions on Developing Marijuana Apps
A marijuana app is an application that allows marijuana-related products to be purchased online. Due to the legalization of marijuana in several U.S states and Canada, marijuana apps are becoming a preferred way for people to order marijuana.
Provided that you live in a state or country where marijuana is legal, it is possible to order marijuana via special marijuana apps. Eaze, weedmaps, etc., are the best cannabis apps.
If you want the best developers then contact DevTeam.Space where you will be matched to the most suitable developers for your project. All programmers are vetted for excellence and their work is guaranteed by the platform.
Alexey Semeney
Founder of DevTeam.Space
Hire Alexey and His Team To Build a Great Product
Alexey is the founder of DevTeam.Space. He is award nominee among TOP 26 mentors of FI's 'Global Startup Mentor Awards'.
Alexey is Expert Startup Review Panel member and advices the oldest angel investment group in Silicon Valley on products investment deals.