C# Microsoft का एक आधुनिक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है, जो मोबाइल डेवलपमेंट में Xamarin और .NET MAUI प्लेटफ़ॉर्म के लिए आधार के रूप में कार्य करती है। एकीकृत .NET इकोसिस्टम के कारण, डेवलपर्स साझा C# और XAML कोड का उपयोग करके iOS और Android के लिए मोबाइल एप्लिकेशन बना सकते हैं। TIOBE इंडेक्स (2026) के अनुसार, C# सभी प्रोग्रामिंग भाषाओं में लोकप्रियता में चौथे स्थान पर है। और जानें Microsoft C# दस्तावेज़ीकरण में।
मुख्य बिंदु
C# (उच्चारण "सी शार्प") एक सुरक्षित प्रकार प्रणाली वाली ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है, जिसे Microsoft ने 2000 में Anders Hejlsberg के नेतृत्व में विकसित किया था। यह नाम संगीत संकेतन (शार्प — स्वर को ऊँचा करना) से प्रेरित है। C# .NET प्लेटफ़ॉर्म पर चलती है, जिसमें Common Language Runtime (CLR) और एक विस्तृत क्लास लाइब्रेरी (BCL — Base Class Library) शामिल है।
मोबाइल डेवलपमेंट में, C# का उपयोग दो तकनीकों के माध्यम से किया जाता है: Xamarin (2011–2024) और इसका उत्तराधिकारी .NET MAUI (2022+)। Xamarin ने साझा C# कोड के साथ मूल Android और iOS एप्लिकेशन बनाने में सक्षम बनाया, प्लेटफ़ॉर्म-विशिष्ट प्रोजेक्ट को अलग करके। .NET MAUI सभी प्लेटफ़ॉर्म को साझा XAML मार्कअप और प्लेटफ़ॉर्म इंटरफ़ेस के माध्यम से मूल API तक पहुँच के साथ एक प्रोजेक्ट में जोड़ता है।
C# की एक प्रमुख विशेषता dynamic के माध्यम से गतिशील डिस्पैच की क्षमता के साथ सख्त स्थैतिक टाइपिंग, var कीवर्ड (प्रकार अनुमान) और एक शक्तिशाली जेनेरिक्स प्रणाली है। C# पूरी तरह से प्रबंधित भाषा है: मेमोरी कचरा संग्रहकर्ता (GC) द्वारा प्रबंधित की जाती है, ऐरे सीमाओं की जाँच की जाती है, अप्रारंभीकृत चर निषिद्ध हैं। यह C# को AOT कंपाइलेशन के माध्यम से तुलनीय प्रदर्शन के साथ C++ से अधिक सुरक्षित बनाता है।
C# 1.0 (2000) — बुनियादी OOP भाषा। C# 3.0 (2007) — LINQ, लैम्ब्डा एक्सप्रेशन, एक्सटेंशन मेथड। C# 6.0 (2015) — स्ट्रिंग इंटरपोलेशन, null-conditional ऑपरेटर। C# 8.0 (2019) — nullable reference types (शून्य सुरक्षा सक्षम), async streams, डिफ़ॉल्ट इंटरफ़ेस मेथड। C# 10 (2021) — global usings, file-scoped namespaces, record struct। C# 12 (2023) — primary constructors, collection expressions, interceptors। प्रत्येक संस्करण मोबाइल डेवलपमेंट के लिए प्रासंगिक सुधार लाता है।
| C# संस्करण | वर्ष | मुख्य विशेषता | मोबाइल डेवलपमेंट के लिए महत्व |
|---|---|---|---|
| 3.0 | 2007 | LINQ, लैम्ब्डा | कलेक्शन और डेटाबेस के साथ सरलीकृत कार्य |
| 6.0 | 2015 | ?. (null-conditional), स्ट्रिंग इंटरपोलेशन | सुरक्षित प्रॉपर्टी एक्सेस, पढ़ने योग्य स्ट्रिंग |
| 8.0 | 2019 | Nullable reference types, async streams | शून्य सुरक्षा, अतुल्यकालिक डेटा स्ट्रीम |
| 10 | 2021 | Record struct, global usings | मान प्रकार, बॉयलरप्लेट में कमी |
| 12 | 2023 | Primary constructors, collection expressions | संक्षिप्त क्लास और कलेक्शन नोटेशन |
C# सिंटैक्स C-जैसा, सख्ती से टाइप किया गया है। प्रिमिटिव सहित सब कुछ एक ऑब्जेक्ट है (int, double, bool — ये ValueType से प्राप्त स्ट्रक्ट हैं)। C# प्रकारों को मान प्रकार (int, double, bool, struct, enum — स्टैक पर संग्रहीत) और संदर्भ प्रकार (string, class, interface, delegate, array, record — हीप पर संग्रहीत) में विभाजित करता है। Nullable प्रकार (int?) मान प्रकारों के लिए null की अनुमति देते हैं।
C# क्लास (class), स्ट्रक्ट (struct), रिकॉर्ड (record), इंटरफ़ेस (interface), एनम (enum) और डेलिगेट (delegate) का समर्थन करता है। record एक अपरिवर्तनीय संदर्भ प्रकार है जिसमें मान-आधारित समानता है (दो रिकॉर्ड समान हैं यदि उनके सभी फ़ील्ड समान हैं)। record struct — record का मान संस्करण, C# 10 में पेश किया गया। primary constructors (C# 12) घोषणा और प्रारंभिकरण को एक पंक्ति में जोड़ते हैं।
// C# में बुनियादी प्रकार और क्लास
using System;
using System.Collections.Generic;
// प्राथमिक कंस्ट्रक्टर के साथ रिकॉर्ड (C# 12)
public record User(int Id, string Name, string Email);
// Nullable गुणों वाली क्लास
public class AppConfig
{
public string AppName { get; init; }
public string? ApiUrl { get; set; } // nullable reference type
public int Version { get; init; }
// एक्सप्रेशन बॉडी वाली विधि
public string GetDisplayName() => $"{AppName} v{Version}";
}
// एक्सटेंशन मेथड
public static class StringExtensions
{
public static bool IsValidEmail(this string email) =>
email.Contains("@") && email.Contains(".");
}
// उपयोग
var user = new User(1, "Alice", "alice@example.com");
bool validEmail = user.Email.IsValidEmail();primary constructor के साथ रिकॉर्ड User स्वचालित रूप से equals, hashCode, ToString, Deconstruct और with-कॉपी उत्पन्न करता है। init-only सेटर (AppName) केवल इनिशियलाइज़र में मान सेट करने की अनुमति देते हैं। एक्सप्रेशन बॉडी (=>) सरल विधियों के लिए संक्षिप्त नोटेशन है। एक्सटेंशन मेथड IsValidEmail बिना इनहेरिटेंस के string में एक विधि जोड़ता है।
LINQ कलेक्शन, डेटाबेस, XML के लिए एक अंतर्निहित क्वेरी भाषा है। LINQ to Objects — IEnumerable कलेक्शन के लिए क्वेरी। LINQ to SQL — डेटाबेस के लिए। LINQ to XML — XML के लिए। सिंटैक्स क्वेरी (from u in users where u.Age > 18 select u) और मेथड (users.Where(u => u.Age > 18).Select(u => u)) हो सकता है। आलसी लोडिंग (विलंबित निष्पादन): क्वेरी घोषणा पर नहीं, पुनरावृत्ति पर निष्पादित होती है।
// कलेक्शन के लिए LINQ क्वेरी
using System.Linq;
var users = new List<User>
{
new User(1, "Alice", "alice@example.com"),
new User(2, "Bob", "bob@test.com"),
new User(3, "Charlie", "charlie@example.com"),
};
// क्वेरी सिंटैक्स
var filteredUsers = from u in users
where u.Email.Contains("example")
orderby u.Name
select u;
// एकाधिक संचालन के साथ मेथड सिंटैक्स
var result = users
.Where(u => u.Email.Contains("example"))
.OrderBy(u => u.Name)
.Select(u => new { u.Name, u.Email })
.ToList();
// GroupBy और एग्रीगेशन
var emailsByDomain = users
.GroupBy(u => u.Email.Split('@')[1])
.Select(g => new { Domain = g.Key, Count = g.Count() });
// async स्ट्रीम के साथ LINQ (IAsyncEnumerable)
await foreach (var user in GetUsersAsync())
{
Console.WriteLine(user.Name);
}
async IAsyncEnumerable<User> GetUsersAsync()
{
yield return new User(1, "Alice", "alice@example.com");
await Task.Delay(100);
yield return new User(2, "Bob", "bob@test.com");
}LINQ क्वेरी filteredUsers ईमेल डोमेन द्वारा उपयोगकर्ताओं को फ़िल्टर करती है और नाम के अनुसार क्रमबद्ध करती है। मेथड सिंटैक्स .Where().OrderBy().Select() — क्वेरी सिंटैक्स के समतुल्य विधियों की श्रृंखला। GroupBy ईमेल डोमेन द्वारा समूहित करता है। IAsyncEnumerable (C# 8) — IEnumerable का अतुल्यकालिक संस्करण, मोबाइल एप्लिकेशन में स्ट्रीमिंग डेटा लोडिंग के लिए उपयोगी।
Xamarin (2011–2024) C# में क्रॉस-प्लेटफ़ॉर्म मोबाइल डेवलपमेंट के लिए Microsoft का पहला प्लेटफ़ॉर्म था। इसमें Xamarin.Android (Linux कर्नेल पर Mono रनटाइम) और Xamarin.iOS (iOS पर JIT प्रतिबंध के कारण ARM64 में AOT कंपाइलेशन) शामिल थे। Xamarin.Forms XAML मार्कअप के साथ एक साझा UI लेयर था, जो तत्वों को मूल (Android View / iOS UIView) में अनुवादित करता था।
.NET MAUI (.NET Multi-platform App UI) Xamarin का उत्तराधिकारी है, जो 2022 में जारी किया गया। एकल .csproj प्रोजेक्ट, एक XAML मार्कअप, एक प्रवेश बिंदु। 5 प्लेटफ़ॉर्म का समर्थन करता है: iOS, Android, Windows (WinUI 3), macOS (Mac Catalyst), Tizen। .NET MAUI Renderer के बजाय नई Handler आर्किटेक्चर का उपयोग करता है: प्रत्येक XAML तत्व प्लेटफ़ॉर्म हैंडलर के माध्यम से मूल घटक पर मैप होता है।
<!-- MainPage.xaml — .NET MAUI का घोषणात्मक UI -->
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.MainPage">
<ScrollView>
<VerticalStackLayout Padding="30" Spacing="25">
<Label Text="Welcome to .NET MAUI!"
FontSize="32"
HorizontalOptions="Center"/>
<Entry x:Name="NameEntry"
Placeholder="Enter your name"/>
<Button Text="Submit"
Clicked="OnSubmitClicked"
BackgroundColor="#512BD4"
TextColor="White"
CornerRadius="8"/>
<CollectionView x:Name="ItemsView"
SelectionMode="Single">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Padding="10">
<Label Text="{Binding Name}"
FontSize="18"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</VerticalStackLayout>
</ScrollView>
</ContentPage>.NET MAUI XAML मार्कअप UI को घोषणात्मक रूप से वर्णित करता है। ScrollView — स्क्रॉलिंग, VerticalStackLayout — लंबवत व्यवस्था। Label, Entry (टेक्स्ट इनपुट), Button — बुनियादी तत्व। CollectionView — आइटम प्रदर्शित करने के लिए DataTemplate के साथ वर्चुअलाइज़्ड सूची। Clicked इवेंट MainPage.xaml.cs कोड-बिहाइंड में OnSubmitClicked विधि से बंधता है।
// MainPage.xaml.cs — C# लॉजिक के साथ कोड-बिहाइंड
namespace MyApp;
public partial class MainPage : ContentPage
{
private readonly List<User> _users = new();
public MainPage()
{
InitializeComponent();
LoadUsers();
}
private async void OnSubmitClicked(object? sender, EventArgs e)
{
var name = NameEntry.Text?.Trim();
if (string.IsNullOrEmpty(name))
{
await DisplayAlert("Error", "Name is required", "OK");
return;
}
_users.Add(new User(_users.Count + 1, name, $"{name}@example.com"));
ItemsView.ItemsSource = null;
ItemsView.ItemsSource = _users;
NameEntry.Text = string.Empty;
}
private async void LoadUsers()
{
var apiService = new ApiService();
var users = await apiService.GetUsersAsync();
_users.AddRange(users);
ItemsView.ItemsSource = _users;
}
}कोड-बिहाइंड MainPage ContentPage से प्राप्त होता है। InitializeComponent() XAML मार्कअप लोड करता है। NameEntry.Text?.Trim() — सुरक्षित पहुँच के लिए null-conditional ऑपरेटर (?.)। DisplayAlert — मूल डायलॉग। ItemsView.ItemsSource — कलेक्शन के लिए बाइंडिंग। अतुल्यकालिक लोडिंग के लिए async/await। जटिल प्रोजेक्ट के लिए MVVM (Model-View-ViewModel) पैटर्न अनुशंसित है।
C# मोबाइल डेवलपमेंट तीन दृष्टिकोण प्रदान करता है: .NET MAUI (क्रॉस-प्लेटफ़ॉर्म UI), Xamarin (पुराना) और Unity (गेम)। नए प्रोजेक्ट के लिए .NET MAUI अनुशंसित मार्ग है। C# एप्लिकेशन Intermediate Language (IL) में कंपाइल होता है, जिसे NativeAOT (.NET MAUI) या Mono (Xamarin) मूल ARM कोड में बदलता है। iOS को AOT कंपाइलेशन की आवश्यकता है — JIT Apple नीतियों द्वारा निषिद्ध है।
.NET MAUI इंटरफ़ेस के माध्यम से प्लेटफ़ॉर्म क्षमताओं के साथ काम करने के लिए एकीकृत API प्रदान करता है: IAccelerometer, IBarometer, IBattery, IConnectivity, IDeviceInfo, IFilePicker, IGeolocation, IMediaPicker, IPermissions, ISpeechRecognizer, IVibration। प्लेटफ़ॉर्म-विशिष्ट कोड के लिए, सशर्त कंपाइलेशन (#if ANDROID, #if IOS) या आंशिक क्लास का उपयोग किया जाता है।
// DI के साथ .NET MAUI में जियोलोकेशन
public class LocationService
{
private readonly IGeolocation _geolocation;
public LocationService(IGeolocation geolocation)
{
_geolocation = geolocation;
}
public async Task<Location?> GetCurrentLocation()
{
try
{
var permission = await CheckAndRequestPermission();
if (permission != PermissionStatus.Granted)
return null;
var location = await _geolocation.GetLastKnownLocationAsync();
if (location == null)
{
location = await _geolocation.GetLocationAsync(new GeolocationRequest
{
DesiredAccuracy = GeolocationAccuracy.Medium,
Timeout = TimeSpan.FromSeconds(10)
});
}
return location;
}
catch (Exception ex)
{
Debug.WriteLine($"स्थान त्रुटि: {ex.Message}");
return null;
}
}
private async Task<PermissionStatus> CheckAndRequestPermission()
{
var status = await Permissions.CheckStatusAsync<Permissions.LocationWhenInUse>();
if (status != PermissionStatus.Granted)
{
status = await Permissions.RequestAsync<Permissions.LocationWhenInUse>();
}
return status;
}
}LocationService DI (IGeolocation का निर्भरता इंजेक्शन) का उपयोग करता है। CheckAndRequestPermission जियोलोकेशन अनुमति की जाँच करता है और अनुरोध करता है। GetLastKnownLocationAsync — तेज़ (लेकिन हमेशा सटीक नहीं) प्रतिक्रिया, GetLocationAsync — सटीकता और टाइमआउट पैरामीटर के साथ अनुरोध। nullable reference types के साथ null-जाँच (location == null)। try-catch प्लेटफ़ॉर्म अपवादों को संभालता है।
C# मोबाइल उपकरणों पर Android पर Java/Kotlin और iOS पर Swift के बराबर प्रदर्शन दिखाता है। NativeAOT (.NET 8+) IL मध्यवर्ती चरण के बिना C# को सीधे मूल कोड में कंपाइल करता है — इससे स्टार्टअप समय 50% कम हो जाता है और मेमोरी खपत कम हो जाती है। .NET MAUI में GC छोटे ठहराव (Workstation GC) के साथ मोबाइल प्लेटफ़ॉर्म के लिए अनुकूलित है। APK आकार ~20-30 MB (NativeAOT के साथ) है।
| पैरामीटर | Xamarin | .NET MAUI |
|---|---|---|
| आर्किटेक्चर | Xamarin.Android + Xamarin.iOS | एकल .csproj प्रोजेक्ट |
| UI रेंडरिंग | Renderer (Xamarin.Forms) | Handler (.NET MAUI) |
| कंपाइलेशन | Mono JIT (Android), AOT (iOS) | NativeAOT (सभी प्लेटफ़ॉर्म) |
| स्थिति | रखरखाव मोड | सक्रिय विकास |
| प्लेटफ़ॉर्म | Android, iOS, Windows | Android, iOS, Windows, macOS, Tizen |
.NET प्लेटफ़ॉर्म प्रबंधित कोड निष्पादित करने के लिए एक इकोसिस्टम है, जिसमें CLR (Common Language Runtime), BCL (Base Class Library), सर्वर डेवलपमेंट के लिए ASP.NET Core और मोबाइल एप्लिकेशन के लिए .NET MAUI शामिल है। .NET 8+ सभी प्रकार के एप्लिकेशन के लिए एक एकीकृत प्लेटफ़ॉर्म है: मोबाइल, डेस्कटॉप, वेब, क्लाउड, IoT, गेम (Unity)।
CLR एक वर्चुअल मशीन है जो CIL (Common Intermediate Language) कोड निष्पादित करती है। C#, VB.NET, F# CIL में कंपाइल होते हैं। CLR का JIT कंपाइलर पहली विधि कॉल पर CIL को मशीन कोड में बदलता है। NativeAOT (पूर्व-कंपाइलेशन) बिल्ड समय पर CIL को मूल कोड में कंपाइल करता है — मोबाइल प्लेटफ़ॉर्म के लिए आदर्श जहाँ JIT प्रतिबंधित हो सकता है (iOS)।
.NET का कचरा संग्रहकर्ता GC पीढ़ीगत (पीढ़ी 0, 1, 2) है, जो अप्रयुक्त ऑब्जेक्ट को स्वचालित रूप से मुक्त करता है। मोबाइल एप्लिकेशन के लिए न्यूनतम ठहराव के साथ Workstation GC अनुशंसित है। GC UI थ्रेड को ब्लॉक किए बिना, एक अलग थ्रेड में होता है। Background GC इंटरैक्टिव एप्लिकेशन के लिए ठहराव को कम करने वाला पृष्ठभूमि संग्रहकर्ता है।
C# डेवलपर उपकरण में Visual Studio, .NET SDK, dotnet CLI, NuGet, JetBrains Rider शामिल हैं। Visual Studio 2022 XAML डिज़ाइनर, प्रबंधित और मूल कोड डीबगर, CPU/मेमोरी प्रोफाइलर के साथ मुख्य IDE है। .NET SDK में csc कंपाइलर, dotnet CLI (dotnet new, dotnet build, dotnet publish, dotnet test) शामिल है।
NuGet .NET का पैकेज मैनेजर है, जो JS के लिए npm के समान है। 300,000+ पैकेज, जिनमें CommunityToolkit.Maui (UI घटक), SQLite-net (डेटाबेस), Firebase Cloud Messaging, ZXing.Net.Maui (QR कोड) शामिल हैं। .NET MAUI Community Toolkit — विकास में तेजी लाने के लिए व्यवहार, कन्वर्टर, एनिमेशन का सेट। RestSharp और Refit — HTTP क्लाइंट। Prism और MVVM Community Toolkit — आर्किटेक्चरल फ्रेमवर्क।
<!-- .csproj — .NET MAUI प्रोजेक्ट कॉन्फ़िगरेशन -->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
<OutputType>Exe</OutputType>
<UseMaui>true</UseMaui>
<ApplicationTitle>MyMAUIApp</ApplicationTitle>
<ApplicationId>com.example.mymauiapp</ApplicationId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Maui" Version="9.0.0" />
<PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
<PackageReference Include="Refit" Version="7.0.0" />
</ItemGroup>
</Project>.csproj फ़ाइल .NET MAUI प्रोजेक्ट कॉन्फ़िगरेशन है। TargetFrameworks लक्ष्य प्लेटफ़ॉर्म सूचीबद्ध करता है। UseMaui MAUI SDK को सक्षम करता है। PackageReference NuGet से निर्भरताएँ निर्दिष्ट करता है। CommunityToolkit.Maui UI घटक (टोस्ट, स्नैकबार, Popup) प्रदान करता है। sqlite-net-pcl एक स्थानीय डेटाबेस है। Refit इंटरफ़ेस-आधारित टाइप किया गया HTTP क्लाइंट है। dotnet build/publish सभी प्लेटफ़ॉर्म के लिए एप्लिकेशन बनाता है।
अक्सर पूछे जाने वाले प्रश्न
C# Microsoft (2000) की एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है, जो .NET प्लेटफ़ॉर्म (CLR) पर चलती है। Xamarin और .NET MAUI के माध्यम से मोबाइल डेवलपमेंट के लिए उपयोग किया जाता है। सख्त स्थैतिक टाइपिंग, स्वचालित मेमोरी प्रबंधन (GC), LINQ, async/await और जेनेरिक को जोड़ता है। TIOBE इंडेक्स (2026) में चौथे स्थान पर है। Anders Hejlsberg द्वारा विकसित।
Xamarin पूर्ववर्ती (2011-2024) था, जो प्रोजेक्ट को Xamarin.Android और Xamarin.iOS में अलग करता था। .NET MAUI (2022+) साझा XAML मार्कअप, Renderer के बजाय Handler आर्किटेक्चर और 5 प्लेटफ़ॉर्म (iOS, Android, Windows, macOS, Tizen) के समर्थन के साथ एकल .csproj प्रोजेक्ट है। Xamarin रखरखाव मोड में चला गया है, नए प्रोजेक्ट .NET MAUI पर बनाए जाते हैं। NativeAOT केवल .NET MAUI में उपलब्ध है।
C# CIL (Common Intermediate Language) में कंपाइल होता है, जिसे NativeAOT (.NET MAUI) या Mono (Xamarin) मूल ARM कोड में बदलता है। Android IL निष्पादित करने के लिए Mono रनटाइम (Xamarin) या NativeAOT (.NET MAUI) का उपयोग करता है। iOS को AOT कंपाइलेशन की आवश्यकता है — JIT Apple द्वारा निषिद्ध है। .NET MAUI इंटरफ़ेस के माध्यम से प्लेटफ़ॉर्म कार्यान्वयन के साथ कैमरा, GPS, सेंसर के लिए एकीकृत API प्रदान करता है।
C# प्रकारों को मान प्रकार (int, double, bool, char, struct, enum — स्टैक) और संदर्भ प्रकार (string, class, interface, array, delegate, record — हीप) में विभाजित करता है। Nullable प्रकार (int?) मान प्रकारों के लिए null की अनुमति देते हैं। record (C# 9) — मान-आधारित समानता के साथ अपरिवर्तनीय संदर्भ प्रकार। record struct (C# 10) — मान संस्करण। dynamic — गतिशील टाइपिंग। var — कंपाइलर प्रकार अनुमान।
Visual Studio 2022 (Windows) और Visual Studio for Mac — XAML डिज़ाइनर, डीबगर और प्रोफाइलर के साथ मुख्य IDE। .NET SDK — csc कंपाइलर, dotnet CLI, MSBuild। NuGet — पैकेज मैनेजर (300,000+)। CommunityToolkit.Maui — UI घटक। JetBrains Rider — वैकल्पिक IDE। परीक्षण: xUnit, NUnit, Moq। CI/CD: Azure DevOps, GitHub Actions।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।