どこまで本気か、でやりようが変わります。
以下に挙げるやり方は基本的にゴツイやり方でスマホ向けのやり方ではありません。
・ 顔認証をしたい
今の技術であれば深層学習、例えば距離学習の様なアプローチ(クラスタリング的な考え方)が必須です。
「距離学習?何それ、聞いたことがないんだけど。」という段階で、もしこのアプローチを狙っているのしたら論文を読むかgithubを漁ってから直してから出直した方が良いです。
「それでもどうしても深層学習のアプローチを取りたい」であれば(C++のような硬派ないばらの道を避けると)Pythonに行きつきます。スマホでPythonは動かせなくはないと聞いたことがありますが、現実的にはPythonの動くサーバーを立てて、そこにスマホから顔画像を送り込んで―というようなことが必要です。顔認証(○○さんの顔と認識)はしないまでも、顔が映っているいないの処理であればガラケーで使われていたHaar-likeなどの顔認識技術(たぶん顔が映ってる、誰のか知らんけど)が使えるはずです。OpenCVという画像処理ライブラリを使えばすぐに顔認識まではいけます。
あとは、GoogleのMediapipeを使えばスマホでも簡単に顔の骨格(特徴点)抽出ができますね。これを使えばだいぶやることは少なくて済みそうです。
ここまでで、画像認識、深層学習、特徴点抽出、Python、サーバー管理、ネットワーク通信という要素技術が出てきています。繰り返しますが、どこまで本気か、でやりようが変わります。
(参考)Surveyであれば概要が洗いざらい入っていそうですね
https://ieeexplore.ieee.org/document/9096726/
・ なりすましを防ぎたい
上記のやり方だと写真をかざしただけで突破されうる可能性があります。
防ぐには立体データを使うか、静脈のような表皮を透けるデータを使うかの辺りと思います。立体のデータはLiDAR機能のあるスマホ(最新iPhoneにはある?)があればそれでも良いと思いますし、SLAMのような手法でカメラとジャイロのデータで顔の立体感を再構築する方法もあるかもしれません。が、これ(カメラで立体感を正しくとらえる)だけで1個のテーマになりそうなボリューム感の技術です。
血管の有無の検知は特殊な波長の赤外線であればできるかもしれませんが、これをスマホでできるかどうかわかりません。
ここまでで、三次元再構築、LiDAR、赤外線、SLAMの話をしました。繰り返しますが、どこまで本気か、でやりようが変わります。
・ なりふり構わず古い手法を使う
なりふり構わず古い手法を使うもアリと思います。Peper with codesに古いやり方のレポートも載っています。深層学習がドーンとで出したのは2017年、実際には2015-2016年くらいから研究者の間では湧いていたはずです。ですので、それより前の時期のコードを参照すれば深層学習を使わないコードが出てくるはずです。
他の方がコメントに書いておられますが、何をやろうとしていてどういう技術とハードが必要で、どれくらいのボリューム感のコードか想定できていないで、何となくやってみようかな、という感じを受けております。それでも良いと思いますが、何となくやってみようかな、という気持ちでは恐らく何もアウトプットできないボリューム感のことに手を付けようとしているということは理解して下さい。
本気でやりたいのであれば、ここに来るまでにキーワードの洗い出しくらいは済ませておいて、Qiitaの日本語記事で近そうなものを見つけてそこからとっかかりにするか、arXivあたりでそれっぽい論文を探してきて概要部分くらいは読み漁るかくらいまで到達していないと苦しいレベルの話と思います。
やろうとしていることのボリューム感を考えれば、AndroidだとかiOSだとかのような小手先の話ではなく、例えばFacenetみたいなEmbeddingsのクラスタリングみたいなやり方と、Mediapipeみたいな特徴点を使うやり方、みんなどっちがいいと思うよ?くらいの話を挙げないと誰も何とも言い難い説教みたいな内容しか答えられない、と私は思います。