Mobile App Development for Donation Collection

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Mobile App Development for Donation Collection
Medium
from 1 week to 3 months
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Developing a Mobile App for Donation Collection

Donation collection apps—separate fintech category with non-trivial requirements. Key difference from standard eCommerce: donations often recurring, amounts arbitrary (including "custom"), user must see exactly where money goes—otherwise trust drops.

Payment Types and Implementation

One-time donation—standard payment via provider. User enters sum, clicks button, sees result.

Recurring donation—user subscribes to monthly deduction. Implemented via recurring payments: on first payment, provider returns card token, server then initiates deductions on set day.

// iOS: Stripe recurring donation setup
import StripePayments

// Step 1: create SetupIntent on server for card save without payment
// Step 2: confirm with STPPaymentHandler
let params = STPConfirmSetupIntentParams(
    paymentMethodParams: cardParams,
    clientSecret: setupIntentClientSecret
)

STPPaymentHandler.shared().confirmSetupIntent(
    params,
    with: self
) { [weak self] status, setupIntent, error in
    switch status {
    case .succeeded:
        // setupIntent.paymentMethodID—save on server
        self?.saveRecurringMethod(setupIntent?.paymentMethodID)
    case .failed:
        self?.showError(error?.localizedDescription)
    case .canceled:
        break
    @unknown default: break
    }
}

Apple Pay / Google Pay for one-time donations—lowest friction. User doesn't enter card details manually:

let request = PKPaymentRequest()
request.merchantIdentifier = "merchant.com.yourcharity.app"
request.countryCode = "RU"
request.currencyCode = "RUB"
request.supportedNetworks = [.visa, .masterCard]
request.merchantCapabilities = [.capability3DS]
request.paymentSummaryItems = [
    PKPaymentSummaryItem(
        label: "Help Animals",
        amount: NSDecimalNumber(string: donationAmount)
    )
]

Custom Amount: UX Nuances

"Custom amount" field—frequent error source. Issues:

  • User enters "1000.5" or "1 000" with space—normalize to Decimal
  • Provider minimum limit (most—10 ₽ or 1 $)
  • Max limit without 3DS
// Android: custom amount normalization
fun parseAmount(input: String): Result<Long> {
    val cleaned = input
        .replace(",", ".")
        .replace(Regex("\\s"), "")
        .trim()

    return try {
        val decimal = cleaned.toBigDecimal()
        if (decimal < BigDecimal("10")) {
            Result.failure(Exception("Minimum—10 ₽"))
        } else if (decimal > BigDecimal("150000")) {
            Result.failure(Exception("Sums over 150,000 ₽ require verification"))
        } else {
            Result.success((decimal * BigDecimal("100")).toLong()) // kopecks
        }
    } catch (e: NumberFormatException) {
        Result.failure(Exception("Enter valid amount"))
    }
}

Transparency: Fund Usage Report

Users donate more when seeing concrete goal and progress. "Fundraising progress bar"—target vs current.

// Android: Jetpack Compose progress indicator
@Composable
fun FundraisingProgress(
    current: Long,
    target: Long,
    modifier: Modifier = Modifier
) {
    val progress = (current.toFloat() / target.toFloat()).coerceIn(0f, 1f)
    val animatedProgress by animateFloatAsState(
        targetValue = progress,
        animationSpec = tween(durationMillis = 800)
    )

    Column(modifier) {
        LinearProgressIndicator(
            progress = animatedProgress,
            modifier = Modifier.fillMaxWidth().height(8.dp),
            trackColor = MaterialTheme.colorScheme.surfaceVariant,
            color = MaterialTheme.colorScheme.primary
        )
        Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) {
            Text("${formatAmount(current)} ₽ raised")
            Text("of ${formatAmount(target)} ₽")
        }
    }
}

Tax Deductions and Documents

For charities often need tax deduction form generation. Server logic: aggregate user payments for year, generate PDF. App just shows "Download Receipt" button.

Timeline Estimates

Basic version (one-time donations, card + Apple/Google Pay, history): 3–5 weeks. Recurring subscriptions—another 1–2 weeks. Fundraising progress bars—another 1 week. Pricing is calculated individually.