How to Build a Marijuana App?
The writing is on the wall.
If you have not yet heard, then here is the next big boom industry.
Marijuana is set to become one of the biggest global cash crops. Because of this, entrepreneurs everywhere are wondering how to build a marijuana app or website.
A significant number of states in the US have now legalized marijuana for medical use, moreover, some states now also allow it for recreational use. Forward-thinking countries like Canada have legalized it completely, giving a clear indication of what is to come.
Consequently, marijuana apps are witnessing a huge growth in demand.
Are you a dynamic, forward-looking entrepreneur trying to cash in on this growing opportunity? If so, you are likely wondering how to create a marijuana app of your own.
In this article, I will show you how to do just that.
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 medical use of marijuana. This was mainly to aid with the treatment of symptoms associated with AIDS, cancer, glaucoma involve Marijuana. Read “Medical marijuana in the U.S. – statistics & facts” for more details.
- Worldwide, spending on legal marijuana or cannabis will likely reach $63.5 billion in 2024. Read this Statista report for more insights.
- Medical marijuana retail sales in the US could reach $7.3 billion in 2022, 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 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.
- 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.
A popular marijuana app, Eaze provides the following features and advantages:
- The app displays a wide range of marijuana products for different styles of consumption.
- A web app, an iOS app, and an Android app are available for users.
- There are wide choices of devices and accessories to buy.
- Users can buy marijuana of devices online, and the company provides delivery services.
Weedmaps is a well-known marijuana app, offering 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 a marijuana app
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, eCommerce, 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 in a marijuana app, you can read “Best marijuana apps of 2018 for iPhone and Android”.
Developing a marijuana app
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 law. This goes for other countries too. Refer to the homepage of “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;
- 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;
- A project manager (PM).
I recommend that you use “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:
- 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. 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:
Hire expert developers for your next project
1,200 top developers
us over the last 3 years
- You can learn about the Stripe payment gateway integration here.
- Easily integrate card payment in 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 lowering of 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.
Get Google Maps SDKs/APIs
To build a marijuana app you will need to integrate maps, and 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.
- 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 for 2020”.
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:
- A 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.
- 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 exception, 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 their 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, therefore, the code is easier to read and maintain.
- It has features like generics and operators like string concatenation that make coding easier.
- Error-free coding is easier with Swift.
- Apps written in Swift are fast and performant.
- Not just Apple, but 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! The web app development involves the following:
- 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 the 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.
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 the 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 a marijuana app?
You might have a great app idea, 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 take professional help. Our guide “How to find the best software development company?” can help you to find the right development partner.
Best of luck with your project.