কীভাবে সুইফটে একটি কম্পাস অ্যাপ তৈরি করবেন

আইওএস থেকে মূল অবস্থান ফ্রেমওয়ার্কের একটি ডুব

️️️️ হ্যালো! এই পোস্টটি একটি নতুন ব্লগে সরানো হয়েছে! সর্বশেষতম নিবন্ধগুলির জন্য फाइভস্টার্স.ব্লগ দেখুন! ️️️️
এই নিবন্ধটি ধরে নেওয়া হয়েছে যে আপনি ইতিমধ্যে মূল অবস্থান কাঠামোর সাথে পরিচিত

2007 সালে, অ্যান্ড্রয়েড এবং আইওএস (তত্ক্ষণে আইফোন ওএস) উভয়ই স্মার্টফোনের জন্য বৃহত্তম বিপ্লবের খুব প্রাথমিক পর্যায়ে ছিল।

অ্যান্ড্রয়েড ঘোষণার পাশাপাশি গুগল প্ল্যাটফর্মে বিকাশকারীদের আগ্রহ জাগাতে প্রথম অ্যান্ড্রয়েড বিকাশকারী চ্যালেঞ্জও চালু করে।

চ্যালেঞ্জের জন্য বিভিন্ন এন্ট্রিগুলির মধ্যে এনকিন ছিল মূলত স্টেরয়েডগুলির জন্য গুগল ম্যাপস। আপনার যদি 7 মিনিট থাকে তবে আপনি (প্রায় 10 বছর বয়সী!) ভিডিও এন্ট্রিটি দেখতে পাবেন:

তবে, মনে রাখবেন যে এই মুহুর্তে বেশিরভাগ লোকেরা অ্যান্ড্রয়েড বা আইফোন কী তা জানতেন না। আমাদের কাছে কোনও অ্যাপ / প্লে স্টোরও ছিল না!

ভিডিওটি দেখার পরে আমার মন পুরোপুরি অভিভূত হয়েছিল।

আমি এখনও উচ্চ বিদ্যালয়ে রয়েছি এবং আমি প্রথমবারের মতো ভিডিওটি দেখছি।

এখন, 10 বছর পরে (আজ!), অনুরূপ কিছু করা কতটা কঠিন? ঠিক আছে, পুরো এনকিন ধারণাটি প্রতিলিপি করতে খুব বেশি সময় লাগতে পারে। আসুন কম্পাস দিয়ে শুরু করা যাক: কম্পাস অ্যাপ তৈরি করা কতটা কঠিন?

মূল বিষয়গুলি: আইফোন শিরোনাম

আজকাল, প্রতিটি আইওএস ডিভাইসে বোর্ডে একটি চৌম্বকীয় যন্ত্র থাকে এবং আইওএস থেকে সিএলএলোকেশনম্যানেজার এই প্রথম চ্যালেঞ্জটিকে অবিশ্বাস্যভাবে সহজ করে তোলে।

সিএললোকেশন ম্যানেজারের অন্যতম কাজ হ'ল ডিভাইস শিরোনামের প্রতিবেদন করা।

শিরোনামটি একটি সিএইচইডিং ডেটা অবজেক্টের আকারে যা সত্য শিরোনাম ধারণ করে, এটি হ'ল প্রকৃত ডিভাইস অরিয়েন্টেশন সত্য উত্তরের সাথে সম্পর্কিত, ডিগ্রিতে।

একটি 2 ডি ভেক্টর কল্পনা করুন, যার উত্সটি আপনার বাড়ির বোতামে রয়েছে এবং স্পিকারের দিক নির্দেশ করে: ট্রুহিডিং এই ভেক্টর এবং ভেক্টরের মধ্যবর্তী কোণ যা একই বিন্দু থেকে শুরু হয় তবে সত্য উত্তরের দিকে নির্দেশ করে ,

যদি আপনার ফোনটি সঠিক উত্তর দিকে নির্দেশ করে তবে আপনি 0 ডিগ্রি শিরোনাম পাবেন। যদি এটি পূর্ব দিকে মুখ করে, আপনি 90 ডিগ্রি ইত্যাদি পান get

ছবি

আমাদের এমন কিছুর একটি চিত্র দরকার যা দেখায় যে আপনি কী চান তা চয়ন করতে পারেন, গুরুত্বপূর্ণ কী উত্তর তীরটি নির্দেশ করছে, এটি আমি ব্যবহার করছি:

কেন এটি গুরুত্বপূর্ণ তা গুরুত্বপূর্ণ? যদি আমরা এইভাবে 0 ডিগ্রি শিরোনাম পাই, তবে ইমেজটি ইতিমধ্যে সঠিক দিকে ইশারা করায় আমাদের ঘোরানো দরকার না!

আমরা যদি কোনও ভিন্ন দিকের কোণ পাই তবে আমরা জানি যে চিত্রটি ঠিক একই ডিগ্রীতে ঘোরানো হবে।

কোড ক্লিপিংস

এগুলি আমাদের প্রথম কম্পাস অ্যাপের মূল অংশ:

অবস্থান পরিচালক

এটি এম্বেডড ডিভাইস শিরোনাম পর্যবেক্ষণ শুরু করার অনুরোধের সাথে এই CLLocationManager ঘোষণা।

ডেপুটি সাইট ম্যানেজার

আমি যেমন বলেছি, আমাদের যা করতে হবে তা হল আমাদের ইমেজটিকে আমাদের শিরোনামের মতো একই কোণে ঘোরানো। আমি মিথ্যা বলিনি:

সিজিএফাইন ট্রান্সফর্মের রেডিয়ানে একটি ঘূর্ণন কোণ প্রয়োজন। সুতরাং আমি আমাদের শিরোনাম কোণটিকে রেডিয়ানে রূপান্তর করতে কিছুটা এক্সটেনশন যুক্ত করেছি:

এটাই! আপনার প্রথম কম্পাস অ্যাপটি তৈরি করার জন্য এটি আপনার প্রয়োজন need

যে কোনও দিকে নির্দেশ করুন

আমাদের প্রথম লক্ষ্য অর্জন করা হয়েছে, আমরা 50 টিরও কম লাইনের কোডগুলিতে একটি সম্পূর্ণ কম্পাস অ্যাপ তৈরি করতে পারি!

আমি জানি! রাইট?

এনকিনের শীতল বৈশিষ্ট্যগুলির মধ্যে একটি হ'ল লোকেশন দেওয়ার পরে অ্যাপটি আপনার চারপাশের জিনিসগুলিকে নির্দেশ করতে পারে।

ধরা যাক আমাদের এমন একটি সিনেমা আছে যা আমরা সত্যই পছন্দ করি। তবে আমরা প্রায়শই হারিয়ে যেতে পারি এবং সর্বদা প্রতিটি ছবির প্রথম পাঁচ মিনিট মিস করি। আমরা এর অবসান করতে চাই: আমরা কীভাবে এমন একটি অ্যাপ তৈরি করতে পারি যা সর্বদা আমাদের সিনেমার প্রতি নির্দেশ দেয়?

স্পষ্টতই কেবল ডিভাইসের শিরোনামটি জানা যথেষ্ট নয়। এই নতুন চ্যালেঞ্জটি সমাধান করার জন্য, তিনটি পরামিতি সেট করা দরকার: ডিভাইসের শিরোনাম, ডিভাইসের অবস্থান এবং সিনেমার অবস্থান।

পরামিতি

আমরা কীভাবে ডিভাইসটি নিয়ন্ত্রণ করতে পারি তা আমরা দেখেছি এবং অবশ্যই আমরা আমাদের প্রিয় সিনেমার জিপিএস অবস্থান হৃদয় দিয়ে জানি।

আমাদের অবস্থানটিও ট্র্যাক রাখতে, আমাদের কেবলমাত্র ডিভাইস শিরোনামই নয়, আমাদের ডিভাইসের অবস্থানটির অনুরোধ করতে আমাদের লোকেশন ম্যানেজারের বিবৃতিটিও আপডেট করতে হবে:

এখন আমাদের যা করতে হবে তা হ'ল আমাদের প্রতিনিধিটির লোকেশন ম্যানেজার (_ :, didUpdateLocations :) ফাংশনটি ঘোষণা করা এবং পূরণ করা। তারপরে আমাদের সমস্ত পরামিতি আছে!

(কম্পাস) চিত্রটি ঘোরান

এখন আমাদের তিনটি পরামিতি রয়েছে, আমাদের সিনেমার অবস্থান অনুসারে আমাদের ছবিটি ঘোরানো দরকার।

এটি করার জন্য, আমাদের প্রথমে আমাদের অবস্থান এবং সিনেমার মধ্যে ভারবহন কোণ গণনা করতে হবে।

এই ক্ষেত্রে, "একটি ছবি হাজারেরও বেশি শব্দ বলে" এই উক্তিটি সত্যই ছড়িয়ে পড়ে। এটি দুটি অবস্থানের মধ্যে ভারবহন:

দ্রষ্টব্য: our আমাদের গুদাম
স্ট্যাক ওভারফ্লো থেকে নির্লজ্জভাবে চিত্র চুরি হয়েছে।

যদি আপনার ফোনটি ঠিক উত্তর দিকে ইশারা করে তবে আপনার ডিভাইসটি আমাদের সিনেমাটিতে সরাসরি নির্দেশ করতে পারে এমন কোণ the

আমাদের ভারবহন গণনা করতে, আমাদের আমাদের জিপিএস অবস্থানগুলি (ডিভাইস এবং থিয়েটারগুলির মধ্যে) একটি 2 ডি প্লেনে প্রজেক্ট করতে হবে এবং তারপরে উপরের সূত্রটি প্রয়োগ করতে হবে।

2 জি প্যানেল পয়েন্টে প্রতিটি জিপিএস অবস্থান নির্ধারণের কোনও নির্দিষ্ট উপায় নেই। এই কারণেই বিশ্বের বিভিন্ন মানচিত্রের অনুমান রয়েছে। ভাগ্যক্রমে, আমাদের ক্ষেত্রে, প্রতিটি অভিক্ষেপ যথেষ্ট।

স্ট্যাকওভারফ্লো সহ স্টোরেজ সমস্যার অনেকগুলি সমাধান রয়েছে। আমি কেবল একটি বেছে নিয়েছি এবং বাকি প্রকল্পটি চালিয়ে যাচ্ছি:

আমরা এখন অবশেষে আমাদের ইমেজ রোটেশনটি সর্বশেষ দিকনির্দেশ এবং ডিভাইসের ভারবহন সহ আপডেট করতে পারি:

এটাই! সিনেমায় আর কোনও বিলম্ব নেই!

কোড উদ্ধৃতি

আমরা এই পোস্টে অনেক কিছু দেখেছি এবং সে কারণেই আমি একটি সম্পূর্ণ ওপেন সোর্স সংস্করণ হিসাবে সম্পূর্ণ কম্পাস অ্যাপটি প্রকাশ করার সিদ্ধান্ত নিয়েছি।

সংগ্রহস্থলটিতে লাফিয়ে উঠতে ছবিতে ক্লিক করুন।

শুরুর পরে অ্যাপটি উত্তর দিকে নির্দেশ করে। আপনি যে কোনও জায়গায় ট্যাপ করতে পারেন এবং একটি বিশ্ব মানচিত্র উপস্থিত হবে: যে কোনও জায়গায় ট্যাপ করুন এবং কম্পাসটি সেই নতুন অবস্থানে নির্দেশ করবে।

আমরা এই পোস্টে যা দেখেছি তা ছাড়াও অ্যাপ্লিকেশনটি ইন্টারফেস রোটেশন (ল্যান্ডস্কেপ ফর্ম্যাটটি বাম / ডান, প্রতিকৃতি ..) এবং ডিভাইস রোটেশন (মাথার উপরের ডিভাইস ইত্যাদি) পরিচালনা করে। উত্স কোড পরীক্ষা করুন!

অ্যাপ স্টোরটিতেও বিনামূল্যে পাওয়া যায় (কেন নয়?)।

এটি আজকের জন্য, শুভ কোডিং!

ফেডেরিকো একটি ব্যাংকক ভিত্তিক সফটওয়্যার ইঞ্জিনিয়ার, যা সুইফ্ট, মিনিমালিজম, ডিজাইন এবং আইওএস বিকাশের দৃ strong় আবেগযুক্ত।